




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 面向小型全自動生化分析儀的同步可靠的UART通信 張洪輝1,2, 黎海文1, 高春海1,2, 吳一輝, 宣 明1 時間:2010年04月21日 字 體: 大 中 小 關鍵詞: 摘 要:關鍵詞:
2、60; 為了提高小型全自動生化分析儀的工作效率,其控制系統(tǒng)需采取并行處理的策略,以單個單片機為核心的單處理器因其功能的局限性,已不能完成多任務的并行處理。采用雙單片機的控制方案可以提高系統(tǒng)的性能,但必須為雙機通信提供穩(wěn)定可靠的方案。 在傳統(tǒng)的8位、16位及32位處理器中,一般都帶有UART串行口。傳統(tǒng)基于UART的數據通信有2種方式:查詢方式和中斷方式。查詢方式下CPU的負擔較重,浪費了處理器資源,不能夠及時處理其他事件1;另外,因發(fā)送端與接收端不能同步,當數據需要接收而接收端未及時響應時,就導致數據的丟失,造成通信不可靠。中斷方式可以在接收到或者發(fā)送完數據時產生中斷,在中斷服務進
3、程中完成數據存儲與處理。由于中斷方式下CPU利用率較高,也能夠實現發(fā)送與接收的同步1,因此在CPU任務簡單的系統(tǒng)中,一般采用中斷方式實現UART數據通信。但是小型全自動化生化分析儀控制系統(tǒng)需要實現多電機位置的閉環(huán)控制、多傳感器的數據采集及處理、病人資料的傳輸處理等任務,采用中斷方式的UART通信時,一方面帶來中斷的優(yōu)先級分配問題,當系統(tǒng)處于更高優(yōu)先級的中斷處理子程序中時,導致串行通信的中斷不能及時被響應,造成數據丟失;另一方面為協調雙處理器間各部件的協同工作,有時不允許程序的正常執(zhí)行流程被打斷,禁止中斷響應。為了保證串口通信的可靠性與穩(wěn)定性,在設計小型全自動生化分析儀的控制系統(tǒng)時,采用了基于3
4、次等待握手協議的同步、可靠的UART通信。本文將分別從物理層、傳輸層與應用層介紹等待握手協議在同步可靠的UART通信中的實現。1 物理層 物理層實現通信底層的物理連接,為數據端設備提供傳送數據的通路,其作用是確保比特流能在物理信道上傳輸2。物理層的連接由單片機的異步通信端口(UART串口)實現。1.1 異步通信簡介3-4 在異步通信中,數據是以字符為單位組成字符幀進行傳送的。發(fā)送端與接收端分別按字符幀規(guī)定的格式和波特率來協調數據的發(fā)送和接收。字符幀和波特率可以由用戶根據實際情況選擇。 字符幀由起始位、數據位、停止位和空閑位4部分組成,如圖1所示。1.2 C8
5、051F060的UART C8051F060 是SiLab公司推出的混合信號系統(tǒng)芯片,是高度集成的片上系統(tǒng),具有高速指令處理能力3。C8051F060有2個UART口,并沒有分配在固定的I/O端口上,而是需要通過優(yōu)先權交叉開關譯碼器進行分配?!敖徊骈_關”按優(yōu)先權順序將端口03的引腳分配給器件上的數字外設。C8051F060的UART串口與端口的連接有多種形式,靈活可靠。2 傳輸層 傳輸層實現數據流的傳輸,并負責傳輸控制,具備流量控制的功能。其目的是為應用層提供可靠無誤的數據傳輸。傳輸層的服務要經歷傳輸連接建立階段和數據傳送階段2。該層由軟硬件結合實現。硬件實
6、現傳輸線路與控制線路的連接,軟件對其進行設置和控制。2.1 傳輸層的硬件電路設置 傳輸層的數據傳輸線路為物理層的UART串口,其傳輸連接的建立、傳輸流量的控制則通過單片機的另外2個獨立I/O口,用于實現3次等待握手協議。電路設計的原理為:發(fā)送端單片機UART口的TX0和RX0分別連接到接收端單片機的UART口的RX0和TX0。在每1個單片機上分別使用2個I/O端口用于握手信號的發(fā)送和接收。其電氣連接如圖2所示。2.2 傳輸層的軟件設計原理 為實現數據通信的同步和提高通信的可靠性,傳輸層采用3次等待握手協議實現數據的實時同步通信。協議的原理如圖3所示。 協議的
7、原理如下: (1)當發(fā)送端要發(fā)送數據時,發(fā)出第1次握手信號,通知接收端,第1次握手信號始終有效,直到收到接收端對第1次握手信號的應答信號,即第2次握手信號。當發(fā)送端接收到第2次握手信號后,使第1次握手信號無效,發(fā)出對第2次握手信號的應答信號,即第3次握手信號,并隨即發(fā)送數據。至此,3次握手協議完成,發(fā)送端與接收端實現了數據的同步傳輸。 (2)當接收端要接收數據時,首先等待發(fā)送端發(fā)出的第1次握手信號,當發(fā)送端發(fā)送第1次握手信號后,表明發(fā)送端已經準備好要發(fā)送數據,接收端將第2次握手信號持續(xù)一段時間后清除,等待第3次握手信號。檢測到第3次握手信號后,隨即開始接收數
8、據。至此,3次握手協議完成,發(fā)送端與接收端實現了數據的同步傳輸。2.3 傳輸層的軟件實現 傳輸層的軟件與硬件電路密切相關,傳輸層的軟件質量的好壞決定了最終應用層軟件的質量。在傳輸層的軟件實現中,與硬件相關的系統(tǒng)初始化尤為重要。系統(tǒng)上電后,首先要進行的就是初始化,初始化包括系統(tǒng)時鐘初始化、EMIF初始化、定時器初始化、端口初始化以及交叉開關的配置等??梢酝ㄟ^設置相應的特殊功能寄存器(SFR)來進行。由于篇幅所限,這里主要介紹關鍵初始化模塊:端口初始化與UART初始化。系統(tǒng)的初始化分為主機的初始化與從機的初始化部分。 端口初始化的關鍵是合理地分配C8051F060的數字外設,使其依據硬件電路的設計
9、,對交叉開關進行配置,并設置相應的端口輸入輸出類型。主機端口初始化中交叉開關配置部分的程序如下:void MasterPORTInit (void) OldSFRPAGE = SFRPAGE; SFRPAGE = CONFIG_PAGE;
10、 /切換頁面地址 XBR0 = 0x02; /SPI0連接到端口
11、 /腳P0.0P0.3 XBR1 = 0x00; XBR2 = 0x44;
12、160; /弱上拉全局禁止,交叉
13、0; /開關使能, UART連接到P0.4P0.5 SFRPAGE = OldSFRPAGE;
14、0; /恢復頁面地址 從機的端口初始化與主機的端口初始化原理相同,這里不再累述。 UART初始化主要包括時鐘源的選擇、工作方式的選擇,邏輯電平的選擇及處理中斷的方式等,其中主機的UART初始化程序如下:void MasterUARTInit(void) OldSFRPAGE = SFRPAGE; SFRPAGE = UART_PAGE; /切換頁面地址
15、160; SCON1 = 0x40; /波特率可編程的8位UART,
16、; /停止位的邏輯電平被忽略,
17、 /禁止接收,清空發(fā)送及接收中斷標志 SFRPAGE = OldSFRPAGE; /恢復頁面地址 傳輸層數據傳輸軟件實現元數據傳輸的功能,在這里實現傳輸層的3次握手協議。依據3次握手協議的設計原理,主機發(fā)送軟件的實現如下: while(P0_6=1)
18、60; /等待第2次握手信號 P0_7=0; /發(fā)出第1次握手信號 Delay1us(1); /延時1 ?滋s P0_7=1; /發(fā)送第3次握手信
19、號 工作時序為:當主機需要發(fā)送數據時,首先將P0_7設置為低,即為第1次握手信號,從機檢測到該信號后,知道主機將發(fā)送數據,于是發(fā)出第2次握手信號,將與主機P0_6相連的引腳置低。主機檢測到P0_6為低電平,即第2次握手信號后,將發(fā)出第3次握手信號,即把P0_7設置為高電平,并隨即發(fā)送數據。 從機接收數據時的軟件實現如下: while(P5_5=1)
20、60; /等待的第1次握手信號 P5_4=1; P5_4=0; /發(fā)出第2次握手信號 Delay1us(1);
21、160;P5_4=1; 從機的P5_4、P5_5分別連接主機的P0_6、P0_7。當從機接收數據時,首先等待主機發(fā)送的第1次握手信號,即主機的P0_7端口(從機的P5_5端口)為低電平。若檢測到第1次握手信號,則發(fā)送第2次握手信號(即將P5_4置低),隨即將P5_4拉高,檢測到第3次握手信號后開始接收數據。為實現軟件的簡便性,減少編程出錯的概率,本文定義了2個宏來完成上述握手的過程。宏定義如下: #define Send while(P0_6=1)P0_7=0;
22、 Delay1us(1); P0_7=1; /主機發(fā)送的宏定義 #define Receive OldSFRPAGE=SFRPAGE; SFRPAGE=CONFIG_PAGE;while(P5_5=1)P5_4=1; P5_4=0;Delay1us(1);P5_4=1; SFRPAGE=OldSFRPAGE;
23、 /從機接收的宏定義 主機發(fā)送與從機接收元數據的函數分別如下:void MasterSendUART (Uchar sdata) Send;
24、60; /完成握手協議 OldSFRPAGE = SFRPAGE; /寄存器頁面切換
25、; SFRPAGE = UART_PAGE; TI1 = 0; /清除發(fā)送完成中斷標志
26、160; SBUF1 = sdata; /發(fā)送數據 while(TI1=0);
27、 /等待發(fā)送完成 TI1 = 0;
28、 /清空發(fā)送完成標志 SFRPAGE = OldSFRPAGE; Uchar Slaver
29、ReceiveUART(void) Receive;
30、60; /完成握手協議 OldSFRPAGE = SFRPAGE; SFRPAGE = UART_PAGE; /寄存器頁面切換 SCON1 = 0x50;
31、0; /允許接收,清空接收完標志 while(SCON1&0x01)=0); &
32、#160; /等待接收完成 ReData = SBUF1; /接收數據 SCON
33、1 = 0x40; /清空接收及發(fā)送完成標志位 SFRPAGE = OldSFRPAGE; return ReData;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 民法典不動產抵押合同(15篇)
- 雷達監(jiān)測環(huán)境變化數據處理分析
- 成都市房產抵押貸款合同模板
- 財務會計崗會計電算化操作培訓勞動合同
- 車間安全生產事故責任認定與處理合同
- 材料力學性能測試疲勞壽命沖擊影響合同
- 水上樂園草皮鋪設與生態(tài)修復合同
- 航運公司運輸合同風險管理與違約責任界定
- 餐館開業(yè)前裝修工程合同范本
- 美術素描兒童課件圖片
- VMware數據中心的服務器虛擬化與運維管理解決方案
- 夫妻婚內財產約定協議書范本(2025年)
- 2025年中醫(yī)師承合同范本文字
- 2025年牢牢堅守廉潔與廉政職業(yè)底線專題課件
- 0-3歲嬰幼兒感覺統(tǒng)合訓練知到智慧樹章節(jié)測試課后答案2024年秋杭州師范大學
- 抑酸藥課件教學課件
- 期末模擬卷 2024-2025學年人教版數學六年級上冊(含答案)
- 腦干神經環(huán)路對意識的調控機制解析
- 動火作業(yè)應急預案樣本(4篇)
- Unit 4 Plants around us(說課稿)-2024-2025學年人教PEP版(2024)英語三年級上冊
- 2024集裝箱儲能系統(tǒng)測試大綱
評論
0/150
提交評論