基于雙C8051F020微控制器的應用系統(tǒng)_第1頁
基于雙C8051F020微控制器的應用系統(tǒng)_第2頁
基于雙C8051F020微控制器的應用系統(tǒng)_第3頁
基于雙C8051F020微控制器的應用系統(tǒng)_第4頁
基于雙C8051F020微控制器的應用系統(tǒng)_第5頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、基于雙C8051F020微控制器的應用系統(tǒng)張厚武,姚凱學(貴州大學計算機科學與技術(shù)學院,貴州 貴陽 )摘要:本文使用2片C8051F020微控制器,通過其自身的SMBus總線進行擴展,實現(xiàn)了多路模擬量和數(shù)字量的輸入與輸出的應用系統(tǒng)。應用系統(tǒng)使用了USB-UART橋接電路,實現(xiàn)了虛擬串口的USB傳輸。文中首先簡要介紹了C8051F020 MCU與CP2101橋接電路的特點,然后詳細闡述了SMBus的總線協(xié)議,并說明了上下位機的通信協(xié)議以及兩片下位機的基于SMBus的數(shù)據(jù)通信,最后給出了主下位機的程序流程圖。關(guān)鍵詞:應用系統(tǒng);C8051F020;SMBus;串行通信;USB中文圖書分類號:TP21

2、6 文獻標識碼:B A Application System Based On Double C8051F020 MCUZHANG Hou-wu,YAO Kai-xue(College of Computer Science & Technology, Guizhou University,Guiyang ,China)Abstract: The paper implemented a application system based on double C8051F020 MCU whose data communication were complete by SMBus, includi

3、ng of multiple channel analog input and digital input/output. Using CP2101 USB-UART electric circuit, the application system realized USB transfer of virtual serial port. The paper first introduced C8051F020 and CP2101s characters in brief, then detailed protocol of SMBus, and explained communicatio

4、n protocol of master/slave computer and data communication of two C8051F020 based on SMBus, finally presented program flow chart for first slave computer.Key Words: Application System; C8051F020; SMBus; Serial Communication; USB0 引言由于MCU(微控制器)在可靠性、體積、功耗、性價比等方面都具有明顯的優(yōu)勢,所以由其組成的上下位機形式的儀器(下位機部分),已經(jīng)在許多工業(yè)

5、控制和數(shù)據(jù)采集系統(tǒng)中得到廣泛應用。在實際應用中,如果一片MCU芯片的功能不能滿足實際需求時,就需要進行擴展。在本文中,我們使用兩片C8051F020微控制器通過SMBus(System Management Bus)系統(tǒng)管理總線進行擴展,使其滿足了15路模擬量輸入(AD)、6數(shù)字量輸入、2路開關(guān)量輸出以及1路PWM波輸出的設(shè)計要求。1 系統(tǒng)硬件構(gòu)成整個系統(tǒng)的裝置示意圖如圖1所示。我們選擇美國Silicon公司的微控制器(MCU)C8051F020(簡稱F020)作為應用系統(tǒng)的CPU。F020是一種混合信號SOC型8位單片機,它有一個8通道的、轉(zhuǎn)換速率為100Kbps的12位ADC,以及一個8通

6、道的、轉(zhuǎn)換速率為500Kbps的8位ADC;2個12位DAC;64KB FlashRom,4KB RAM;有22個中斷源和5個定時器/計數(shù)器;內(nèi)部有兩個增強型全雙工UART、SPI總線和SMBus總線1。CP2101是美國Silicon公司推出的USB-UART橋接電路。該電路的集成度高,內(nèi)置USB2.0全速功能控制器、USB收發(fā)器、晶開關(guān)量輸出模擬量輸入C8051F020主下位機(1)C8051F020從下位機(2)模擬量輸入數(shù)字量輸入PC機(上位機)PWM圖1 系統(tǒng)硬件構(gòu)成示意圖SDASLAVDDCP2101USB口UARTSDASCL主器件從器件1從器件2圖2 典型的SMBus配置VDD

7、=5VVDD=3VVDD=5VVDD=3V體振蕩器、EEPROM及異步串行數(shù)據(jù)總線(UART),支持調(diào)制解調(diào)器全功能信號,全部功能集成在一個5mm 5mm IC中。在PC機上安裝CP2101的驅(qū)動程序以后,CP2101就作為PC機的一個虛擬 COM 口 (VCP),對它的操作與對PC機的COM口操作完全一樣,因此無需修改現(xiàn)有的 COM 口應用就可以實現(xiàn)通過 USB 向基于CP2101 的器件傳輸數(shù)據(jù),保證了對已有的串口通訊程序的兼容。其數(shù)據(jù)傳輸?shù)牟ㄌ芈史秶鸀?00b/s921.6kb/s2。2 SMBus總線SMBus總線標準最早由Intel公司于1995年發(fā)布,它以Philips公司的I2C

8、總線為基礎(chǔ),面向于“不同系統(tǒng)組成芯片與系統(tǒng)其他部分間的通訊”3。SMBus接口的工作電壓可以在(3.05.0)V之間,總線上不同器件的工作電壓可以不同。SCL串行時鐘線和SDA串行數(shù)據(jù)線是雙向的,因此兩條線上都需要上拉電阻或類似電路將它們連到電源電壓,在沒有數(shù)據(jù)傳輸時,兩條線都處于高電平。典型的SMBus配置如圖2所示。SMBus采用多種線路條件作為器件的握手信號。在一次數(shù)據(jù)傳輸過程中,SDA只能在SCL為低電平時改變。在SCL為高電平時,SDA發(fā)生改變則開始和停止信號。SMBus協(xié)議有兩種可能的數(shù)據(jù)傳輸類型:從主發(fā)送器到所尋址的從接收器(寫)和從被尋址的從發(fā)送器到主接收器(讀)。這兩種數(shù)據(jù)傳

9、輸都由主器件啟動,主器件還提供串行時鐘。一次典型的SMBus數(shù)據(jù)傳輸包括一個起始條件(START)、一個地址字節(jié)(位7-1:7 位從地址;位0:R/W 方向位)、一個或多個字節(jié)的數(shù)據(jù)和一個停止條件(STOP)。每個接收的字節(jié)(由一個主器件或從器件)都必須用SCL高電平期間的SDA低電平來確認(ACK)。如果接收器件不確認,則發(fā)送器件將讀到一個“非確認”(NACK),這用SCL 高電平期間的SDA高電平表示。所有的數(shù)據(jù)傳輸都由主器件啟動,可以尋址一個或多個目標從器件。主器件產(chǎn)生一個起始條件,然后發(fā)送地址和方向位。在數(shù)據(jù)傳輸結(jié)束時,主器件產(chǎn)生一個停止條件,結(jié)束數(shù)據(jù)交換并釋放總線。圖3示出了一次典型

10、的SMBus數(shù)據(jù)傳輸過程1。SCLSDASTARTSLA6SLA5-0R/WD7D6-0ACK從地址R/W數(shù)據(jù)字節(jié)NACKSTOP圖3 一次典型的SMBus數(shù)據(jù)傳輸過程3 系統(tǒng)通信的設(shè)計系統(tǒng)的任務主要對模擬量進行AD轉(zhuǎn)換,對數(shù)字量進行計數(shù),并將這些數(shù)據(jù)最終要傳給上位微機進行顯示與數(shù)據(jù)處理,上位機根據(jù)其處理結(jié)果控制PWM波的頻率及占空比。3.1 上下位機的數(shù)據(jù)通信4-5由于我們使用了USB-UART橋接電路CP2101,因而上下位機的程序仍是按照UART形式編寫。為保證雙方傳輸?shù)臄?shù)據(jù)準確可靠,程序中使用軟件握手:上位機首先給下位機傳波特率參數(shù),其值為600H,300H,180H,C0H,60H,

11、0CH之一,下位機對收到波特率參數(shù)進行驗證,如果為其中之一,則發(fā)送字節(jié)AAH給上位機,并更新下位機波特率,反之認為是噪聲干擾,丟棄此數(shù)據(jù),再重新等待接收。上位機收到AAH字節(jié)后,就更新新的波特率,然后向下位機發(fā)送控制命令子,如采樣通道選擇,單端方式還是差分方式,開關(guān)量的狀態(tài),采樣周期和采樣時間等,以及是否要求從下位機工作,如果要求從下位機工作,還要正確建立主從下位機的通信,之后再向上位機發(fā)應答字節(jié)55H。協(xié)議還采用超時重發(fā)功能,可自動連接5次。3.2 主從下位機的SMBus通信6為使SMBus通信程序便于編寫,我們規(guī)定第1片為主片,第二片為從片。SMBus的工作由下列寄存器中的內(nèi)容決定:狀態(tài)寄

12、存器(SMB0STA)、控制寄存器 (SMB0CN)、地址寄存器(SMB0ADR)和數(shù)據(jù)寄存器(SMB0DAT)。要通過SMBus通訊協(xié)議實現(xiàn)兩片芯片之間的數(shù)據(jù)通信,關(guān)鍵在于如何利用單片機中的狀態(tài)寄存器中的狀態(tài)碼,通過軟件編程來實現(xiàn)對狀態(tài)碼的查詢。每一個狀態(tài)碼都對應一個當前的通信狀態(tài)和將要執(zhí)行的操作,因此,根據(jù)所得到的狀態(tài)碼來確定當前的通信狀態(tài),以實現(xiàn)相互間的通信。在編程時,SMBus通信協(xié)議是利用中斷查詢狀態(tài)碼的方式實現(xiàn)的,為使雙方的通信可靠,也規(guī)定了軟件握手:初始化后,從片等待主片的命令字節(jié)33H,從片收到33H后給主片發(fā)CCH應答字節(jié),主片收到CCH字節(jié)后,根據(jù)上位機要求給從片發(fā)送相應的

13、命令字節(jié)(采樣周期,采樣時間,采樣通道,開關(guān)量狀態(tài)等),然后發(fā)送BBH字節(jié)個主片,并啟動相應AD轉(zhuǎn)換,主片收到BB后才進行AD轉(zhuǎn)換,保證主片與從片對模擬量的同步采樣。4 系統(tǒng)軟件設(shè)計考慮到系統(tǒng)靈活性,我們編程使得通道選擇、采樣時間、采樣周期、數(shù)字量輸入、開關(guān)量的控制、PWM波的頻率及占空比、從下位機的工作情況等由用戶在上位機上指定,然后以命令字傳給下位機,具體為:用4個字節(jié)分別表示兩片MCU的AD通道是否被選中,每個字節(jié)位上為1表示該通道被選中,否則不選該通道。用3個字節(jié)存放采樣周期,其最小單位為10微妙,5個字節(jié)存放采樣時間,一個字節(jié)用于開關(guān)量,2個字節(jié)用于存放PWM波的頻率,2個字節(jié)用于存

14、放占空比值,1個字節(jié)用于表示數(shù)字量輸入是否被選中。對于輸入的數(shù)字量,輸入是渦輪流量計來的脈沖,輸入脈沖數(shù)的確定是采樣引腳電平變化的方法來確定的。為保證小流量時的精度,按4秒鐘所計脈沖數(shù),通過其轉(zhuǎn)換關(guān)系來確定流量。其中引腳電平采樣的時間設(shè)為100微妙。為減輕下位機的任務,其采集的原始數(shù)據(jù)直接送給上位機進行處理,保證下位機有高的采樣速率和高的傳輸速率。圖4給出了下位機主片的工作流程圖。軟件復位收到波特率參數(shù)?YN以查詢方式對所選擇通道進行采樣采樣周期到?把采集的數(shù)據(jù)送NYYN采集數(shù)據(jù)傳送完?把采集的數(shù)據(jù)送Y開始、初始化接收命令參數(shù)從片工作?主從片通信成功?軟件復位NYY設(shè)定采樣周期、采樣時間、采樣

15、通道、開關(guān)量、PWM等參數(shù)、設(shè)置從片工作參數(shù)有數(shù)據(jù)要傳?上位機(1個字節(jié))以SMBus接受從片采樣數(shù)據(jù)采樣時間到?上位機(1個字節(jié))N圖3 主下位機工作流程圖5 結(jié)束語我們使用了自身帶有AD轉(zhuǎn)換電路及SMBus通信總線接口C8051F020微控制器,實現(xiàn)了兩片MCU之間數(shù)據(jù)的高速可靠的數(shù)據(jù)通信。而且還使用了USB-UART橋接電路,保證了下位機與上位機有高的數(shù)據(jù)傳輸率。并且,在上位機軟件設(shè)計時考慮到應用系統(tǒng)的通用性,可根據(jù)實際需求選用不同的傳感器,并在上位機上進行相應的選擇,就能得到所需的測量數(shù)據(jù)及曲線,使得該應用系統(tǒng)有較強的通用性。參考文獻:1 潘琢金,施國君. C8051FXXX高速SOC單片機原理及應用. 北京:北京航空航天大學出版社,2002.2 CP2101數(shù)據(jù)手冊. /xhl/downfile/CP210x.pdf.3謝瑞和.串行技術(shù)大全.北京:清華大學出版社,2003.4 .4 陳建平,姚凱學,等. 通用動態(tài)測試系統(tǒng)的設(shè)計與實現(xiàn). 貴州大學學報(自然科學版), 2004,21(1):79-82. 5 范逸之 陳立元. Visual Basic 與RS-232串行通信控制M,北京:中國青年出版社,2002.6 王力,王開和,等. 基于C8051F的SMBus實現(xiàn)多點測溫系統(tǒng). 天津科技大學學報,2004,19(3):39-4

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論