色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > I2C總線在智能化振動測試儀中的應(yīng)用

          I2C總線在智能化振動測試儀中的應(yīng)用

          作者:南京師范大學(xué)數(shù)科院 時(shí)間:2002-12-05 來源:電子設(shè)計(jì)應(yīng)用 收藏
          引言
          基于單片微處理器的智能化器日趨小型化、簡約化,串行用戶接口I2C總線正在或已經(jīng)取代基于并行總線的接口方式,它無需地址總線、數(shù)據(jù)總線、控制總線,只通過兩條線就可以完成與單片微處理器的接口與數(shù)據(jù)交換,大大地簡化了傳統(tǒng)接口方式的復(fù)雜性,充分地利用了單片微處理器的有限I/O資源.
          串行用戶接口I2C總線
          I2C總線一般包括數(shù)據(jù)線SDA和時(shí)鐘線SCL。與單片微處理器交換數(shù)據(jù)就是通過SDA來完成的,它的工作方式為雙向,既可以輸出數(shù)據(jù)給微處理器,也可以接受微處理器發(fā)送的數(shù)據(jù)、命令。串行時(shí)鐘SCL也是雙向的,作為控制方的單片微處理器,通過SCL發(fā)送時(shí)鐘信號;作為受控制方的器件,也要按總線上的SCL信號發(fā)出或是接收SDA上的信號。具有I2C總線的器件,它的內(nèi)部輸出端一定是開漏輸出或集電極開路輸出方式。在信息傳輸時(shí),SCL為高電平期間,SDA上的信息必須保持穩(wěn)定不變,只有SCL為低電平期間,SDA上的信息才允許變化。同時(shí)SDA上信息的每一位都要和SCL上的時(shí)鐘脈沖相對應(yīng)。SCL沒有時(shí)鐘信號,SDA信息將停止傳輸處于等待狀態(tài)。在I2C總線傳輸?shù)倪^程中,將兩種特定的狀態(tài)定義為起始信號、終止信號,在SCL保持高電平期間,SDA由高電平向低電平變化,這種狀態(tài)稱之為起始信號。SCL保持高電平期間,SDA由低電平向高電平變化,稱之為終止信號。如圖1所示。
          值得注意的是,SDA上傳輸?shù)拿總€(gè)字節(jié)必須是8位,首先傳輸最高有效位,每個(gè)字節(jié)傳輸后還必須跟隨一個(gè)應(yīng)答位,這時(shí)SCL保持高電平,在此期間在SDA端保持一個(gè)低電平信號,完成應(yīng)答信號的輸出,數(shù)據(jù)傳輸中應(yīng)答信號是必須的。在整個(gè)傳輸?shù)倪^程中,傳輸字節(jié)的數(shù)目不受限制。
          數(shù)據(jù)傳送的格式:I2C總線要求在起始信號的后面是尋址字節(jié),在尋址字節(jié)高7位是被控器的地址,第8位是信息傳輸方向位(R/W),“0”表示主控器發(fā)送,“1” 表示主控器接收。尋址字節(jié)的后面是數(shù)據(jù)字節(jié),每一個(gè)字節(jié)都必須要有應(yīng)答信號,傳送結(jié)束后必須發(fā)終止信號。如圖2所示.
          I2C技術(shù)在測振儀中的應(yīng)用
          筆者所開發(fā)的測振儀表中應(yīng)用了I2C技術(shù),單片微處理器采用AT89C2051單片機(jī)。AT89C2051是美國ATMEL公司采用CMOS工藝生產(chǎn)的20引腳8位單片機(jī),體積小,它與Intel公司MCS-51的指令和引腳兼容,內(nèi)置2k字節(jié)flash程序存儲器、128字節(jié)RAM、15根I/O線、2 個(gè)16位定時(shí)/計(jì)數(shù)器、5個(gè)向量二級中斷結(jié)構(gòu)、1個(gè)全雙向的串行口、并且內(nèi)含精密模擬比較器和片內(nèi)振蕩器。具有2.7V至5.5V的寬電壓工作范圍和高至24MHz的工作頻率,同時(shí)還具有加密陣列的二級程序存儲器加鎖、掉電和時(shí)鐘電路等。外圍接口芯片如A/D轉(zhuǎn)換器、實(shí)時(shí)時(shí)鐘、數(shù)據(jù)存儲器X24C16均是具有I2C技術(shù)結(jié)構(gòu)的器件,如圖3所示。
          該測振儀表完全以單片機(jī)為主,完成振動數(shù)據(jù)的處理,可實(shí)時(shí)測量、存儲振動的速度均方根值及振動的位移值。振動傳感器使用磁電式速度傳感器。振動信號前置處理電路完成振動信號的調(diào)理、零位漂移的修正、自動量程切換、低通濾波等處理。峰值提取與保持電路將振動的位移峰-峰最大值檢出,并轉(zhuǎn)換為直流量送入串行A/D轉(zhuǎn)換器,送單片機(jī)處理。存儲芯片采用具有I2C總線結(jié)構(gòu)的非易失型存儲器E2PROM X24C16,被測的振動數(shù)據(jù)由單片微處理器計(jì)算轉(zhuǎn)換工程量,輸出串行數(shù)據(jù)以字符的形式顯示在LCD液晶上,也可以通過標(biāo)準(zhǔn)RS-232C通訊接口將存儲的數(shù)據(jù)傳送至PC機(jī),按測量的時(shí)間進(jìn)行查詢處理。本測振儀表為電池供電,LCD液晶顯示、數(shù)據(jù)存儲器、通訊接口、A/D轉(zhuǎn)換器均以串行方式與單片微處理器交換數(shù)據(jù),有效地利用了接口資源。
          雖然目前大量使用的8051內(nèi)核的單片微處理器,并不支持I2C總線結(jié)構(gòu),但仍然可以利用單片微處理器的普通I/O口來模擬I2C總線,通過軟件編程來實(shí)現(xiàn),但注意一定要按I2C總線的時(shí)序進(jìn)行。以下給出利用AT89C2051單片微處理器的普通I/O口來模擬I2C總線,控制X24C16的讀寫操作。
          X24C16是一種具有2KB存儲容量的串行E2PROM,具有體積小、功耗低,可掉電保護(hù)等特點(diǎn)。當(dāng)要對X24C16的存儲單元寫入數(shù)據(jù)時(shí),每寫入一個(gè)字節(jié),所要操作的數(shù)據(jù)格式由3個(gè)字節(jié)組成,第1字節(jié)為:

          第2字節(jié)為:

          其中:1010碼是X24C16的器件地址,A7-A0是從地址,A10、A9、A8為X24C16的高位地址。第2字節(jié)是X24C16的低8位地址,第3字節(jié)是要寫入到X24C16的數(shù)據(jù),特別注意,每個(gè)字節(jié)后一定要跟一個(gè)應(yīng)答信號。(源程序詳見本刊網(wǎng)站,www.eaw.com.cn)
          結(jié)語
          I2C總線,由于連線少,結(jié)構(gòu)簡單,與并行總線相比,大大地簡化了儀表系統(tǒng)的硬件設(shè)計(jì),提高了可靠性。這是一種高性能的串行總線,正在獲得廣泛的工程應(yīng)用。與此同時(shí),基于串行用戶接口I2C總線的新型電子器件的出現(xiàn),也在推動著I2C總線的應(yīng)用。對于不帶I2C總線接口的MCS-51系列單片微處理器,只要采用兩根通用I/O,并且嚴(yán)格按照I2C總線規(guī)程來模擬I2C總線,同樣可以使用帶I2C總線接口的器件來作為外擴(kuò)I/O口的接口電路。■

          參考文獻(xiàn):
          1. 吳金戊、沈慶陽、郭庭吉,8051 單片機(jī)實(shí)踐與應(yīng)用,學(xué)苑出版社,1993
          2. 賴麒文,8051 單片機(jī)C語言徹底應(yīng)用,科學(xué)出版社,2002

          作者簡介:
          吳強(qiáng),南京師范大學(xué)數(shù)科院助教,主要從事計(jì)算機(jī)應(yīng)用及語言的教學(xué)、科研。


          圖1 起始、終止信號時(shí)序

          圖3 基于I2C總線串行控制的測振儀原理框圖

          ;************************************
          ; 向X24C16 寫入一字節(jié)數(shù)據(jù)子程序
          ;************************************
          WR24: ACALL STA24 發(fā)起始信號
          mov a,addwh 存儲單元地址高位
          clr c
          rlc a
          orl a,#0a0h ; 器件碼1010
          acall send 發(fā)送
          mov a,addwl 存儲單元地址低8位
          acall send
          MOV A,DATA 數(shù)據(jù)在DATA中
          acall send 發(fā)送
          acall STOP 發(fā)終止信號
          RET
          ;*************************
          ; 24C16 讀出子程序
          ;*************************
          RD24: ACALL STA24
          mov a,addrh
          clr c
          rlc a
          orl a,#0A0h ; special code for read(0a1h)
          acall send
          mov a,addrl
          acall send
          acall sta24
          mov a,#0A1h
          acall send
          acall read
          mov data,a
          acall stop
          RET
          ;************************
          ; 啟動 24C16(發(fā)I2C總線起始信號)
          ;************************
          STA24: setb scl
          setb sda
          nop
          clr sda
          nop
          nop
          nop
          clr scl
          nop
          ret
          ;************************
          ; 24C16 關(guān)閉(發(fā)I2C總線終止信號)
          ;************************
          STOP: clr sda
          nop
          nop
          setb scl
          nop
          nop
          setb sda
          nop
          nop
          nop
          clr scl
          nop
          ret
          ;************************
          ; 24C16寫入
          ;************************
          send: MOV R7,#08H
          clr scl
          lop: RLC A
          mov sda,c
          nop
          nop
          setb scl
          nop
          nop
          clr scl
          djnz r7,lop
          setb sda 應(yīng)答信號
          setb scl
          nop
          nop
          lop1: mov c,sda
          jc lop1
          clr scl
          ret
          ;***************************
          ; 按位讀出每一位
          ;***************************
          READ: MOV R7,#08H
          clr scl
          RLP: nop
          nop
          setb scl
          nop
          mov c,sda
          rlc a
          nop
          nop
          clr scl
          djnz r7,rlp
          clr sda 應(yīng)答信號
          nop
          nop
          setb scl
          ret




          關(guān)鍵詞: 測試儀

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉