国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于51單片機I〈sup〉2〈/sup〉C總線串行通信的應(yīng)用

2009-03-30 04:52黃燦勝
新媒體研究 2009年3期
關(guān)鍵詞:低電平高電平數(shù)據(jù)線

[摘要]介紹I2C總線技術(shù)及其技術(shù)標準。結(jié)合ATMEL公司具有I2C總線的AT24LCO4,給出AT89S51單片機虛擬I2C總線的硬件設(shè)計及軟件實現(xiàn)。

[關(guān)鍵詞]I2C單片機AT24LC04

中圖分類號:TN91文獻標識碼:A文章編號:1671-7597(2009)0210034-02

一、引言

I2C總線是PHILIPS公司推出的一種雙向二線制總線,它包括一條串行數(shù)據(jù)線(SDA)和一條串行時鐘線(SCL)??偩€中每個器件都有唯一的地址識別,而且都可以作為一個發(fā)送器或接收器。I2C總線是目前常見的一種智能化儀器儀表組成方案,但在很多小型儀表中,使用帶有12C總線接口的高檔單片機在經(jīng)濟上則是不合算的。51系列的單片機是我國目前流行的性價比高的微控制器之一,而大多數(shù)51系列單片機不具備與I2C總線的接口功能。本文以AT89S51單片機為例探究如何在51系列的單片機中實現(xiàn)I2C總線的串行通信和控制外圍I2C總線的器件。

二、I2C總線系統(tǒng)結(jié)構(gòu)及時序

(一)I2C總線組成

一個典型的I2C總線系統(tǒng)組成結(jié)構(gòu)如圖一所示,假設(shè)系統(tǒng)中器件均具有I2C總線接口,通過兩根線SDA(串行數(shù)據(jù)線)和SCL(串線時鐘線)連接到I2C總線,并通過總線行識別。

I2C總線的器件分為主器件和從器件。主器件的功能是啟動在總線上傳送數(shù)據(jù),并產(chǎn)生時鐘脈沖,以允許與被尋址的器件進行數(shù)據(jù)傳送。任何器件均能成為從器件,只有微控制器才能成為主器件。I2C總線允許連接多個微控制器,先控制總線的器件成為主器件。數(shù)據(jù)在主、從器件間傳送,結(jié)束后,主、從器件將釋放總線,退出主、從器件角色。總線上存在主、從器件時,總線處于忙的狀態(tài),反之,總線處于空閑狀態(tài)。

(二)I2C總線時序

所有主機在SCL線上產(chǎn)生自己的時鐘來傳輸I2C總線上的數(shù)據(jù),數(shù)據(jù)只在時鐘的高電平周期有效,每傳輸一個數(shù)據(jù)位就產(chǎn)生一個時鐘脈沖,數(shù)據(jù)線的高或低電平狀態(tài)只有在SCL線的時鐘信號是低電平時才能改變,當(dāng)SCL為高電平時,SDA的改變表示“開始”和“停止”狀態(tài),即SDA由高電平轉(zhuǎn)入低電平表示開始,該命令必須在其它命令前執(zhí)行;SDA由低電平轉(zhuǎn)入高電平表示停止狀態(tài),該命令可終止所有通訊。在開始條件后,SCL低電平期間,SDA允許變化,每位數(shù)據(jù)需一個時鐘脈沖,當(dāng)SCL為高時,SDA必須穩(wěn)定,主控器在應(yīng)答時鐘脈沖高電平期間釋放SDA線,轉(zhuǎn)由接收器控制。相同總線上的設(shè)備在收到數(shù)據(jù)后,以置SDA為低電平的方式對其確認??偩€不忙時,數(shù)據(jù)線和時鐘線保持為高電平。I2C總線的時序如圖二所示。

三、51單片機系統(tǒng)中I2C總線的實現(xiàn)

51系列單片機上并不帶I2C總線,因此必須根據(jù)I2C總線的時序用單片機上的I/O口模擬I2C總線時序?qū)崿F(xiàn)其功能?,F(xiàn)以單片機應(yīng)用系統(tǒng)中較為常見的E2PROM中AT24LC04為例,介紹在51系列單片機上利用普通I/O口實現(xiàn)I2C串行總線的方法和軟件設(shè)計。

外圍I2C器件選用AT24LC04是EEPROM。其具有512×8位的存儲容量,工作從器件方式,其引腳排列如圖三所示。

其中AO、A1和A2為地址選擇輸入端。單片機與AT24LCO4間進行數(shù)據(jù)傳遞時,首先傳送器件的從地址SLA,START為起始信號,1010為AT24LCO4的器件地址,AO和A1由芯片的AO、A1引腳上的電平?jīng)Q定。

圖四所示為AT89S51單片機和AT24LCO4的接口圖,分別用I/O口P1.6、P1.7連接SCL和SDA總線。通過控制P1.6口的高低電平得到I2C的虛擬時鐘,P1.7口作為數(shù)據(jù)傳輸?shù)碾p向端口,作為單片機和AT24LCO4之間的數(shù)據(jù)線。

四、虛擬I2C總線軟件結(jié)構(gòu)

對于虛擬I2C總線來說要實現(xiàn)其功能主要是注意I2C器件的操作時序,總線的運行由主機控制。所謂主機即啟動數(shù)據(jù)的傳送即發(fā)出啟動信號,發(fā)出時鐘信號,傳送結(jié)束時發(fā)出停止信號的設(shè)備,通常主機是微處理器。被主機尋訪的設(shè)備都稱為從機。這里AT89S51是I2C串行總線中的主器件;AT24LCO4是I2C串行總線的從器件。為了進行通訊,每個接到I2C總線的設(shè)備都有一個唯一的地址,以便于主機尋訪。主機和從機的數(shù)據(jù)傳送,可以由主機發(fā)送數(shù)據(jù)到從機,也可以是從機發(fā)到主機。凡是發(fā)送數(shù)據(jù)到總線的設(shè)備稱為發(fā)送器,從總線上接收數(shù)據(jù)的設(shè)備被稱為接受器。表一為程序中所使用的變量及功能。

為了保證嚴格的時序,需要采用匯編程序模擬12C串行時序。程序代碼如下:

SCL EQU P1.6:定義端口

SDA EQU P1.7:

START:CLR SCL;開始信號的傳遞

SETB SDA;

ACALL DELAY;

SETB SCL;

ACALL DELAY;

CLR SDA;

ACALL DELAY;

CLR SCL;

RET;

STOP:CLR SCL;停止信號的傳遞

CLR SDA;

ACALL DELAY;

SETB SCL;

ACALL DELAY;

SETB SDA

ACALL DELAY;

RET;

SEND:MOV R0,#08H;發(fā)送一個字節(jié)

SENDO:RLC A:

MOV C SDA;

SETB SCL;

ACALL DELAY;

CLR SCL;

DJNZ R0.SENDO;

SETB SDA:

PET;

REV:MOV R0,#08H;接收一個字節(jié)

REVO:SETB SCL;

MOV C SDA;

RLC A:

CLR SCL;

DJNZ R7.REV0;

PET;

ACKC:SETB SCL;接收一個應(yīng)答位

ACALL DELAY;

MOV C,SDA;

CLR SCL;

RET;

ACKS:SETB SCL;發(fā)送一個應(yīng)答位

ACALL DELAY;

MOV C SDA;

CLR SCL;

PET;

DELAY:NOP;延時程序

NOP:

NOP;

RET;

五、結(jié)論

本文介紹了I2C總線的組成及時序,并以ATMEL公司的AT24LC04為例模擬I2C總線的時序的起始、停止及CPU向I2C總線的發(fā)送和接收數(shù)據(jù)。

基金項目:南校教研字(2007)第003號南寧師范高等??茖W(xué)??蒲许椖拷?jīng)費資助。

作者簡介:

黃燦勝,男,廣西扶綏人,南寧師范高等??茖W(xué)校,工程師,研究方向是單片機應(yīng)用技術(shù)教學(xué)與研究。

猜你喜歡
低電平高電平數(shù)據(jù)線
一種實用的電腦接口判斷方法
高電平MMC子模塊電容電壓控制策略研究
第三方編織數(shù)據(jù)線材質(zhì)更抗拉、更耐用
官方數(shù)據(jù)線未必靠譜:小米抗拉強度落后其他品牌近5倍!
數(shù)字電子技術(shù)的應(yīng)用
淺談物理電路與數(shù)字電路
關(guān)于Multisim10.0的高電平調(diào)幅電路仿真研究
DX型中波發(fā)射機PB200單元控制板時鐘電路工作原理
會叫喚的數(shù)據(jù)線
蒙山县| 内乡县| 磐安县| 文成县| 海安县| 扶余县| 招远市| 奉贤区| 普宁市| 神木县| 正镶白旗| 宜川县| 浑源县| 南乐县| 郑州市| 辰溪县| 许昌县| 怀化市| 安阳县| 衢州市| 开鲁县| 邮箱| 宁南县| 青阳县| 互助| 岳西县| 上栗县| 彩票| 潍坊市| 夏河县| 阳曲县| 文山县| 西城区| 抚州市| 六盘水市| 新疆| 长寿区| 囊谦县| 亚东县| 新和县| 望谟县|