男女午夜激情_www.天堂av.com_亚洲综合小说区_亚洲欧美自拍视频_成年精品_久久www免费人成—看片_激情综合五月天_久久高潮视频_最新国产成人ab网站_国产精品卡一

機電之家資源網
單片機首頁|單片機基礎|單片機應用|單片機開發|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發
培訓信息
贊助商
基于雙C8051F020微控制器的應用系統
基于雙C8051F020微控制器的應用系統
 更新時間:2009-11-30 15:57:17  點擊數:0
【字體: 字體顏色
摘要:本文使用2片C8051F020微控制器,通過其自身的SMBus總線進行擴展,實現了多路模擬量和數字量的輸入與輸出的應用系統。應用系統使用了USB-UART橋接電路,實現了虛擬串口的USB傳輸。文中首先簡要介紹了C8051F020 MCU與CP2101橋接電路的特點,然后詳細闡述了SMBus的總線協議,并說明了上下位機的通信協議以及兩片下位機的基于SMBus的數據通信,最后給出了主下位機的程序流程圖。
關鍵詞:應用系統;C8051F020;SMBus;串行通信;USB

引言


    由于MCU(微控制器)在可靠性、體積、功耗、性價比等方面都具有明顯的優勢,所以由其組成的上下位機形式的儀器(下位機部分),已經在許多工業控制和數據采集系統中得到廣泛應用。在實際應用中,如果一片MCU芯片的功能不能滿足實際需求時,就需要進行擴展。在本文中,我們使用兩片C8051F020微控制器通過SMBus(System   Management  Bus)系統管理總線進行擴展,使其滿足了15路模擬量輸入(AD)、6數字量輸入、2路開關量輸出以及1路PWM波輸出的設計要求。

 

系統硬件構成

整個系統的裝置示意圖如圖1所示。我們選擇美國Silicon公司的微控制器(MCU)C8051F020(簡稱F020)作為應用系統的CPU。F020是一種混合信號SOC型8位單片機,它有一個8通道的、轉換速率為100Kbps的12位ADC,以及一個8通道的、轉換速率為500Kbps的8位ADC;2個12位DAC;64KB FlashRom,4KB RAM;有22個中斷源和5個定時器/計數器;內部有兩個增強型全雙工UART、SPI總線和SMBus總線[1]

CP2101是美國Silicon公司推出的USB-UART橋接電路。該電路的集成度高,內置USB2.0全速功能控制器、USB收發器、晶體振蕩器、EEPROM及異步串行數據總線(UART),支持調制解調器全功能信號,全部功能集成在一個5mm ´5mm IC中。

                                          圖1 典型的SMBus配置

在PC機上安裝CP2101的驅動程序以后,CP2101就作為PC機的一個虛擬 COM 口 (VCP),對它的操作與對PC機的COM口操作完全一樣,因此無需修改現有的 COM 口應用就可以實現通過 USB 向基于CP2101 的器件傳輸數據,保證了對已有的串口通訊程序的兼容。其數據傳輸的波特率范圍為300b/s~921.6kb/s[2]

 

2  SMBus總線

SMBus總線標準最早由Intel公司于1995年發布,它以Philips公司的I2C總線為基礎,面向于“不同系統組成芯片與系統其他部分間的通訊”[3]。SMBus接口的工作電壓可以在(3.0~5.0)V之間,總線上不同器件的工作電壓可以不同。SCL串行時鐘線和SDA串行數據線是雙向的,因此兩條線上都需要上拉電阻或類似電路將它們連到電源電壓,在沒有數據傳輸時,兩條線都處于高電平。典型的SMBus配置如圖2所示。SMBus采用多種線路條件作為器件的握手信號。在一次數據傳輸過程中,SDA只能在SCL為低電平時改變。在SCL為高電平時,SDA發生改變則開始和停止信號。

圖3  一次典型的SMBus數據傳輸過程

SMBus協議有兩種可能的數據傳輸類型:從主發送器到所尋址的從接收器(寫)和從被尋址的從發送器到主接收器(讀)。這兩種數據傳輸都由主器件啟動,主器件還提供串行時鐘。一次典型的SMBus數據傳輸包括一個起始條件(START)、一個地址字節(位7-1:7 位從地址;位0:R/W 方向位)、一個或多個字節的數據和一個停止條件(STOP)。每個接收的字節(由一個主器件或從器件)都必須用SCL高電平期間的SDA低電平來確認(ACK)。如果接收器件不確認,則發送器件將讀到一個“非確認”(NACK),這用SCL 高電平期間的SDA高電平表示。

所有的數據傳輸都由主器件啟動,可以尋址一個或多個目標從器件。主器件產生一個起始條件,然后發送地址和方向位。在數據傳輸結束時,主器件產生一個停止條件,結束數據交換并釋放總線。圖3示出了一次典型的SMBus數據傳輸過程[1]

3 系統通信的設計

    系統的任務主要對模擬量進行AD轉換,對數字量進行計數,并將這些數據最終要傳給上位微機進行顯示與數據處理,上位機根據其處理結果控制PWM波的頻率及占空比。

3.1  上下位機的數據通信[4-5]

由于我們使用了USB-UART橋接電路CP2101,因而上下位機的程序仍是按照UART形式編寫。為保證雙方傳輸的數據準確可靠,程序中使用軟件握手:上位機首先給下位機傳波特率參數,其值為600H,300H,180H,C0H,60H,0CH之一,下位機對收到波特率參數進行驗證,如果為其中之一,則發送字節AAH給上位機,并更新下位機波特率,反之認為是噪聲干擾,丟棄此數據,再重新等待接收。上位機收到AAH字節后,就更新新的波特率,然后向下位機發送控制命令子,如采樣通道選擇,單端方式還是差分方式,開關量的狀態,采樣周期和采樣時間等,以及是否要求從下位機工作,如果要求從下位機工作,還要正確建立主從下位機的通信,之后再向上位機發應答字節55H。協議還采用超時重發功能,可自動連接5次。

3.2 主從下位機的SMBus通信[6]

為使SMBus通信程序便于編寫,我們規定第1片為主片,第二片為從片。SMBus的工作由下列寄存器中的內容決定:狀態寄存器(SMB0STA)、控制寄存器 (SMB0CN)、地址寄存器(SMB0ADR)和數據寄存器(SMB0DAT)。要通過SMBus通訊協議實現兩片芯片之間的數據通信,關鍵在于如何利用單片機中的狀態寄存器中的狀態碼,通過軟件編程來實現對狀態碼的查詢。每一個狀態碼都對應一個當前的通信狀態和將要執行的操作,因此,根據所得到的狀態碼來確定當前的通信狀態,以實現相互間的通信。

在編程時,SMBus通信協議是利用中斷查詢狀態碼的方式實現的,為使雙方的通信可靠,也規定了軟件握手:初始化后,從片等待主片的命令字節33H,從片收到33H后給主片發CCH應答字節,主片收到CCH字節后,根據上位機要求給從片發送相應的命令字節(采樣周期,采樣時間,采樣通道,開關量狀態等),然后發送BBH字節個主片,并啟動相應AD轉換,主片收到BB后才進行AD轉換,保證主片與從片對模擬量的同步采樣。

 

4 系統軟件設計

    考慮到系統靈活性,我們編程使得通道選擇、采樣時間、采樣周期、數字量輸入、開關量的控制、PWM波的頻率及占空比、從下位機的工作情況等由用戶在上位機上指定,然后以命令字傳給下位機,具體為:用4個字節分別表示兩片MCU的AD通道是否被選中,每個字節位上為1表示該通道被選中,否則不選該通道。用3個字節存放采樣周期,其最小單位為10微妙,5個字節存放采樣時間,一個字節用于開關量,2個字節用于存放PWM波的頻率,2個字節用于存放占空比值,1個字節用于表示數字量輸入是否被選中。對于輸入的數字量,輸入是渦輪流量計來的脈沖,輸入脈沖數的確定是采樣引腳電平變化的方法來確定的。為保證小流量時的精度,按4秒鐘所計脈沖數,通過其轉換關系來確定流量。其中引腳電平采樣的時間設為100微妙。

為減輕下位機的任務,其采集的原始數據直接送給上位機進行處理,保證下位機有高的采樣速率和高的傳輸速率。圖4給出了下位機主片的工作流程圖。

結束語

我們使用了自身帶有AD轉換電路及SMBus通信總線接口C8051F020微控制器,實現了兩片MCU之間數據的高速可靠的數據通信。而且還使用了USB-UART橋接電路,保證了下位機與上位機有高的數據傳輸率。并且,在上位機軟件設計時考慮到應用系統的通用性,可根據實際需求選用不同的傳感器,并在上位機上進行相應的選擇,就能得到所需的測量數據及曲線,使得該應用系統有較強的通用性。

參考文獻:

[1] 潘琢金,施國君. C8051FXXX高速SOC單片機原理及應用. 北京:北京航空航天大學出版社,2002.

[2] CP2101數據手冊. http://www.xhl.com.cn

/xhl/downfile/CP210x.pdf.

[3]謝瑞和.串行技術大全.北京:清華大學出版社,2003.4 .

[4] 陳建平,姚凱學,等. 通用動態測試系統的設計與實現. 貴州大學學報(自然科學版), 2004,

21(1):79-82.

[5] 范逸之 陳立元. Visual Basic 與RS-232串行通信控制[M],北京:中國青年出版社,2002.

[6] 王力,王開和,等. 基于C8051F的SMBus實現多點測溫系統. 天津科技大學學報,2004,19(3):

39-41.

  • 上一篇: 單片機在超聲控制系統中的應用研究
  • 下一篇: 沒有了
  • 發表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網友評論:(只顯示最新5條。)
    關于我們 | 聯系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發消息66821730(技術支持)點擊這里給我發消息66821730(廣告投放) 點擊這里給我發消息41031197(編輯) 點擊這里給我發消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業自行提供,該企業負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(濱江)機電一體化學會
    中國行業電子商務100強網站

    網站經營許可證:浙B2-20080178-1
    主站蜘蛛池模板: 昆明市| 绥滨县| 保靖县| 米林县| 柳州市| 故城县| 绥滨县| 鲁甸县| 平顶山市| 同江市| 桂东县| 中江县| 江孜县| 嘉鱼县| 扬中市| 泰兴市| 清水县| 阿坝| 北宁市| 清河县| 通江县| 克东县| 中山市| 嘉黎县| 秦皇岛市| 息烽县| 西昌市| 南城县| 罗源县| 雷山县| 汉源县| 象州县| 许昌县| 崇左市| 积石山| 鲁甸县| 北流市| 类乌齐县| 南郑县| 达日县| 五峰|