• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

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

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

      中圖分類號(hào):TN91文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1671-7597(2009)0210034-02

      一、引言

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

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

      (一)I2C總線組成

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

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

      (二)I2C總線時(shí)序

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

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

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

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

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

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

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

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

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

      SCL EQU P1.6:定義端口

      SDA EQU P1.7:

      START:CLR SCL;開始信號(hào)的傳遞

      SETB SDA;

      ACALL DELAY;

      SETB SCL;

      ACALL DELAY;

      CLR SDA;

      ACALL DELAY;

      CLR SCL;

      RET;

      STOP:CLR SCL;停止信號(hào)的傳遞

      CLR SDA;

      ACALL DELAY;

      SETB SCL;

      ACALL DELAY;

      SETB SDA

      ACALL DELAY;

      RET;

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

      SENDO:RLC A:

      MOV C SDA;

      SETB SCL;

      ACALL DELAY;

      CLR SCL;

      DJNZ R0.SENDO;

      SETB SDA:

      PET;

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

      REVO:SETB SCL;

      MOV C SDA;

      RLC A:

      CLR SCL;

      DJNZ R7.REV0;

      PET;

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

      ACALL DELAY;

      MOV C,SDA;

      CLR SCL;

      RET;

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

      ACALL DELAY;

      MOV C SDA;

      CLR SCL;

      PET;

      DELAY:NOP;延時(shí)程序

      NOP:

      NOP;

      RET;

      五、結(jié)論

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

      基金項(xiàng)目:南校教研字(2007)第003號(hào)南寧師范高等??茖W(xué)校科研項(xiàng)目經(jīng)費(fèi)資助。

      作者簡(jiǎn)介:

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

      猜你喜歡
      數(shù)據(jù)線低電平高電平
      數(shù)據(jù)線長(zhǎng)短影響充電速度
      數(shù)字電路中“邏輯非”的用法辨析
      一種基于FPGA的PWM防錯(cuò)輸出控制電路
      鐵道車輛高/低電平信號(hào)智能發(fā)生器設(shè)計(jì)
      TS-03C全固態(tài)PDM中波發(fā)射機(jī)開關(guān)機(jī)控制電路原理及故障分析
      科技傳播(2019年15期)2019-08-22 08:07:44
      2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車型低電平參考電壓總線電路圖
      DM 50KW中波廣播發(fā)射機(jī)欠推動(dòng)故障分析
      PDM 1kW中波廣播發(fā)射機(jī)保護(hù)電路分析
      數(shù)據(jù)線接口超聲波焊接設(shè)備設(shè)計(jì)
      焊接(2016年7期)2016-02-27 13:05:07
      會(huì)叫喚的數(shù)據(jù)線
      合阳县| 建德市| 英超| 山东| 襄汾县| 嘉荫县| 江西省| 阳信县| 靖宇县| 肥西县| 长泰县| 平顶山市| 邵阳县| 古田县| 秦安县| 惠州市| 临邑县| 砀山县| 昌图县| 云林县| 堆龙德庆县| 山阴县| 邢台县| 临沧市| 卫辉市| 洞头县| 洪雅县| 慈溪市| 阿克陶县| 惠来县| 长海县| 金沙县| 抚州市| 奇台县| 金溪县| 佛坪县| 无锡市| 盐城市| 韶关市| 府谷县| 乌审旗|