




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 面向小型全自動(dòng)生化分析儀的同步可靠的UART通信 張洪輝1,2, 黎海文1, 高春海1,2, 吳一輝, 宣 明1 時(shí)間:2010年04月21日 字 體: 大 中 小 關(guān)鍵詞: 摘 要:關(guān)鍵詞:
2、60; 為了提高小型全自動(dòng)生化分析儀的工作效率,其控制系統(tǒng)需采取并行處理的策略,以單個(gè)單片機(jī)為核心的單處理器因其功能的局限性,已不能完成多任務(wù)的并行處理。采用雙單片機(jī)的控制方案可以提高系統(tǒng)的性能,但必須為雙機(jī)通信提供穩(wěn)定可靠的方案。 在傳統(tǒng)的8位、16位及32位處理器中,一般都帶有UART串行口。傳統(tǒng)基于UART的數(shù)據(jù)通信有2種方式:查詢方式和中斷方式。查詢方式下CPU的負(fù)擔(dān)較重,浪費(fèi)了處理器資源,不能夠及時(shí)處理其他事件1;另外,因發(fā)送端與接收端不能同步,當(dāng)數(shù)據(jù)需要接收而接收端未及時(shí)響應(yīng)時(shí),就導(dǎo)致數(shù)據(jù)的丟失,造成通信不可靠。中斷方式可以在接收到或者發(fā)送完數(shù)據(jù)時(shí)產(chǎn)生中斷,在中斷服務(wù)進(jìn)
3、程中完成數(shù)據(jù)存儲(chǔ)與處理。由于中斷方式下CPU利用率較高,也能夠?qū)崿F(xiàn)發(fā)送與接收的同步1,因此在CPU任務(wù)簡(jiǎn)單的系統(tǒng)中,一般采用中斷方式實(shí)現(xiàn)UART數(shù)據(jù)通信。但是小型全自動(dòng)化生化分析儀控制系統(tǒng)需要實(shí)現(xiàn)多電機(jī)位置的閉環(huán)控制、多傳感器的數(shù)據(jù)采集及處理、病人資料的傳輸處理等任務(wù),采用中斷方式的UART通信時(shí),一方面帶來中斷的優(yōu)先級(jí)分配問題,當(dāng)系統(tǒng)處于更高優(yōu)先級(jí)的中斷處理子程序中時(shí),導(dǎo)致串行通信的中斷不能及時(shí)被響應(yīng),造成數(shù)據(jù)丟失;另一方面為協(xié)調(diào)雙處理器間各部件的協(xié)同工作,有時(shí)不允許程序的正常執(zhí)行流程被打斷,禁止中斷響應(yīng)。為了保證串口通信的可靠性與穩(wěn)定性,在設(shè)計(jì)小型全自動(dòng)生化分析儀的控制系統(tǒng)時(shí),采用了基于3
4、次等待握手協(xié)議的同步、可靠的UART通信。本文將分別從物理層、傳輸層與應(yīng)用層介紹等待握手協(xié)議在同步可靠的UART通信中的實(shí)現(xiàn)。1 物理層 物理層實(shí)現(xiàn)通信底層的物理連接,為數(shù)據(jù)端設(shè)備提供傳送數(shù)據(jù)的通路,其作用是確保比特流能在物理信道上傳輸2。物理層的連接由單片機(jī)的異步通信端口(UART串口)實(shí)現(xiàn)。1.1 異步通信簡(jiǎn)介3-4 在異步通信中,數(shù)據(jù)是以字符為單位組成字符幀進(jìn)行傳送的。發(fā)送端與接收端分別按字符幀規(guī)定的格式和波特率來協(xié)調(diào)數(shù)據(jù)的發(fā)送和接收。字符幀和波特率可以由用戶根據(jù)實(shí)際情況選擇。 字符幀由起始位、數(shù)據(jù)位、停止位和空閑位4部分組成,如圖1所示。1.2 C8
5、051F060的UART C8051F060 是SiLab公司推出的混合信號(hào)系統(tǒng)芯片,是高度集成的片上系統(tǒng),具有高速指令處理能力3。C8051F060有2個(gè)UART口,并沒有分配在固定的I/O端口上,而是需要通過優(yōu)先權(quán)交叉開關(guān)譯碼器進(jìn)行分配。“交叉開關(guān)”按優(yōu)先權(quán)順序?qū)⒍丝?3的引腳分配給器件上的數(shù)字外設(shè)。C8051F060的UART串口與端口的連接有多種形式,靈活可靠。2 傳輸層 傳輸層實(shí)現(xiàn)數(shù)據(jù)流的傳輸,并負(fù)責(zé)傳輸控制,具備流量控制的功能。其目的是為應(yīng)用層提供可靠無誤的數(shù)據(jù)傳輸。傳輸層的服務(wù)要經(jīng)歷傳輸連接建立階段和數(shù)據(jù)傳送階段2。該層由軟硬件結(jié)合實(shí)現(xiàn)。硬件實(shí)
6、現(xiàn)傳輸線路與控制線路的連接,軟件對(duì)其進(jìn)行設(shè)置和控制。2.1 傳輸層的硬件電路設(shè)置 傳輸層的數(shù)據(jù)傳輸線路為物理層的UART串口,其傳輸連接的建立、傳輸流量的控制則通過單片機(jī)的另外2個(gè)獨(dú)立I/O口,用于實(shí)現(xiàn)3次等待握手協(xié)議。電路設(shè)計(jì)的原理為:發(fā)送端單片機(jī)UART口的TX0和RX0分別連接到接收端單片機(jī)的UART口的RX0和TX0。在每1個(gè)單片機(jī)上分別使用2個(gè)I/O端口用于握手信號(hào)的發(fā)送和接收。其電氣連接如圖2所示。2.2 傳輸層的軟件設(shè)計(jì)原理 為實(shí)現(xiàn)數(shù)據(jù)通信的同步和提高通信的可靠性,傳輸層采用3次等待握手協(xié)議實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)同步通信。協(xié)議的原理如圖3所示。 協(xié)議的
7、原理如下: (1)當(dāng)發(fā)送端要發(fā)送數(shù)據(jù)時(shí),發(fā)出第1次握手信號(hào),通知接收端,第1次握手信號(hào)始終有效,直到收到接收端對(duì)第1次握手信號(hào)的應(yīng)答信號(hào),即第2次握手信號(hào)。當(dāng)發(fā)送端接收到第2次握手信號(hào)后,使第1次握手信號(hào)無效,發(fā)出對(duì)第2次握手信號(hào)的應(yīng)答信號(hào),即第3次握手信號(hào),并隨即發(fā)送數(shù)據(jù)。至此,3次握手協(xié)議完成,發(fā)送端與接收端實(shí)現(xiàn)了數(shù)據(jù)的同步傳輸。 (2)當(dāng)接收端要接收數(shù)據(jù)時(shí),首先等待發(fā)送端發(fā)出的第1次握手信號(hào),當(dāng)發(fā)送端發(fā)送第1次握手信號(hào)后,表明發(fā)送端已經(jīng)準(zhǔn)備好要發(fā)送數(shù)據(jù),接收端將第2次握手信號(hào)持續(xù)一段時(shí)間后清除,等待第3次握手信號(hào)。檢測(cè)到第3次握手信號(hào)后,隨即開始接收數(shù)
8、據(jù)。至此,3次握手協(xié)議完成,發(fā)送端與接收端實(shí)現(xiàn)了數(shù)據(jù)的同步傳輸。2.3 傳輸層的軟件實(shí)現(xiàn) 傳輸層的軟件與硬件電路密切相關(guān),傳輸層的軟件質(zhì)量的好壞決定了最終應(yīng)用層軟件的質(zhì)量。在傳輸層的軟件實(shí)現(xiàn)中,與硬件相關(guān)的系統(tǒng)初始化尤為重要。系統(tǒng)上電后,首先要進(jìn)行的就是初始化,初始化包括系統(tǒng)時(shí)鐘初始化、EMIF初始化、定時(shí)器初始化、端口初始化以及交叉開關(guān)的配置等??梢酝ㄟ^設(shè)置相應(yīng)的特殊功能寄存器(SFR)來進(jìn)行。由于篇幅所限,這里主要介紹關(guān)鍵初始化模塊:端口初始化與UART初始化。系統(tǒng)的初始化分為主機(jī)的初始化與從機(jī)的初始化部分。 端口初始化的關(guān)鍵是合理地分配C8051F060的數(shù)字外設(shè),使其依據(jù)硬件電路的設(shè)計(jì)
9、,對(duì)交叉開關(guān)進(jìn)行配置,并設(shè)置相應(yīng)的端口輸入輸出類型。主機(jī)端口初始化中交叉開關(guān)配置部分的程序如下:void MasterPORTInit (void) OldSFRPAGE = SFRPAGE; SFRPAGE = CONFIG_PAGE;
10、 /切換頁面地址 XBR0 = 0x02; /SPI0連接到端口
11、 /腳P0.0P0.3 XBR1 = 0x00; XBR2 = 0x44;
12、160; /弱上拉全局禁止,交叉
13、0; /開關(guān)使能, UART連接到P0.4P0.5 SFRPAGE = OldSFRPAGE;
14、0; /恢復(fù)頁面地址 從機(jī)的端口初始化與主機(jī)的端口初始化原理相同,這里不再累述。 UART初始化主要包括時(shí)鐘源的選擇、工作方式的選擇,邏輯電平的選擇及處理中斷的方式等,其中主機(jī)的UART初始化程序如下:void MasterUARTInit(void) OldSFRPAGE = SFRPAGE; SFRPAGE = UART_PAGE; /切換頁面地址
15、160; SCON1 = 0x40; /波特率可編程的8位UART,
16、; /停止位的邏輯電平被忽略,
17、 /禁止接收,清空發(fā)送及接收中斷標(biāo)志 SFRPAGE = OldSFRPAGE; /恢復(fù)頁面地址 傳輸層數(shù)據(jù)傳輸軟件實(shí)現(xiàn)元數(shù)據(jù)傳輸?shù)墓δ?,在這里實(shí)現(xiàn)傳輸層的3次握手協(xié)議。依據(jù)3次握手協(xié)議的設(shè)計(jì)原理,主機(jī)發(fā)送軟件的實(shí)現(xiàn)如下: while(P0_6=1)
18、60; /等待第2次握手信號(hào) P0_7=0; /發(fā)出第1次握手信號(hào) Delay1us(1); /延時(shí)1 ?滋s P0_7=1; /發(fā)送第3次握手信
19、號(hào) 工作時(shí)序?yàn)椋寒?dāng)主機(jī)需要發(fā)送數(shù)據(jù)時(shí),首先將P0_7設(shè)置為低,即為第1次握手信號(hào),從機(jī)檢測(cè)到該信號(hào)后,知道主機(jī)將發(fā)送數(shù)據(jù),于是發(fā)出第2次握手信號(hào),將與主機(jī)P0_6相連的引腳置低。主機(jī)檢測(cè)到P0_6為低電平,即第2次握手信號(hào)后,將發(fā)出第3次握手信號(hào),即把P0_7設(shè)置為高電平,并隨即發(fā)送數(shù)據(jù)。 從機(jī)接收數(shù)據(jù)時(shí)的軟件實(shí)現(xiàn)如下: while(P5_5=1)
20、60; /等待的第1次握手信號(hào) P5_4=1; P5_4=0; /發(fā)出第2次握手信號(hào) Delay1us(1);
21、160;P5_4=1; 從機(jī)的P5_4、P5_5分別連接主機(jī)的P0_6、P0_7。當(dāng)從機(jī)接收數(shù)據(jù)時(shí),首先等待主機(jī)發(fā)送的第1次握手信號(hào),即主機(jī)的P0_7端口(從機(jī)的P5_5端口)為低電平。若檢測(cè)到第1次握手信號(hào),則發(fā)送第2次握手信號(hào)(即將P5_4置低),隨即將P5_4拉高,檢測(cè)到第3次握手信號(hào)后開始接收數(shù)據(jù)。為實(shí)現(xiàn)軟件的簡(jiǎn)便性,減少編程出錯(cuò)的概率,本文定義了2個(gè)宏來完成上述握手的過程。宏定義如下: #define Send while(P0_6=1)P0_7=0;
22、 Delay1us(1); P0_7=1; /主機(jī)發(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、 /從機(jī)接收的宏定義 主機(jī)發(fā)送與從機(jī)接收元數(shù)據(jù)的函數(shù)分別如下:void MasterSendUART (Uchar sdata) Send;
24、60; /完成握手協(xié)議 OldSFRPAGE = SFRPAGE; /寄存器頁面切換
25、; SFRPAGE = UART_PAGE; TI1 = 0; /清除發(fā)送完成中斷標(biāo)志
26、160; SBUF1 = sdata; /發(fā)送數(shù)據(jù) while(TI1=0);
27、 /等待發(fā)送完成 TI1 = 0;
28、 /清空發(fā)送完成標(biāo)志 SFRPAGE = OldSFRPAGE; Uchar Slaver
29、ReceiveUART(void) Receive;
30、60; /完成握手協(xié)議 OldSFRPAGE = SFRPAGE; SFRPAGE = UART_PAGE; /寄存器頁面切換 SCON1 = 0x50;
31、0; /允許接收,清空接收完標(biāo)志 while(SCON1&0x01)=0); &
32、#160; /等待接收完成 ReData = SBUF1; /接收數(shù)據(jù) SCON
33、1 = 0x40; /清空接收及發(fā)送完成標(biāo)志位 SFRPAGE = OldSFRPAGE; return ReData;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)船舶傳令裝置行業(yè)市場(chǎng)全景監(jiān)測(cè)及投資戰(zhàn)略咨詢報(bào)告
- 2025屆天津市濱海新區(qū)大港油田一中高二化學(xué)第二學(xué)期期末考試模擬試題含解析
- 2025年中國(guó)跳線架行業(yè)市場(chǎng)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略規(guī)劃研究報(bào)告
- 2025年中國(guó)有機(jī)食品行業(yè)市場(chǎng)運(yùn)營(yíng)現(xiàn)狀及投資規(guī)劃研究建議報(bào)告
- 2025年中國(guó)玻璃清洗干燥機(jī)行業(yè)市場(chǎng)運(yùn)營(yíng)狀況及投資戰(zhàn)略決策報(bào)告
- 2025年中國(guó)排氣消音器行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報(bào)告
- 中國(guó)農(nóng)林業(yè)機(jī)器用充氣橡膠輪胎市場(chǎng)供需格局及未來發(fā)展趨勢(shì)報(bào)告
- 2025年中國(guó)白云粉行業(yè)市場(chǎng)發(fā)展前景及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2025年中國(guó)阻燃電線電纜行業(yè)市場(chǎng)調(diào)研分析及投資戰(zhàn)略咨詢報(bào)告
- 2025年圖書出版項(xiàng)目深度研究分析報(bào)告
- 上海寶山區(qū)公開招聘社區(qū)工作者考試高頻題庫帶答案2025年
- 體育經(jīng)紀(jì)人資格考試復(fù)習(xí)資料
- 2025年英語四級(jí)考試試卷及答案
- 中國(guó)絲綢文化課件
- 人工血管內(nèi)瘺穿刺技巧與護(hù)理
- 脊柱術(shù)后腦脊液漏護(hù)理
- 預(yù)防溺水小學(xué)課件
- 血小板減少課件
- 裝修工程滿堂腳手架施工方案
- 12J12無障礙設(shè)施圖集
- VMware數(shù)據(jù)中心的服務(wù)器虛擬化與運(yùn)維管理解決方案
評(píng)論
0/150
提交評(píng)論