《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 面向小型全自動生化分析儀的同步可靠的UART通信
面向小型全自動生化分析儀的同步可靠的UART通信
張洪輝1,2, 黎海文1, 高春海1,2, 吳一輝, 宣 明1
1.中國科學院長春光學精密機械與物理研究所 應用光學國家重點實驗室,吉林 長春130033;2. 中國科學院研究生院, 北京100039
摘要: 為了在小型全自動生化分析控制系統中實現雙單片機之間同步、可靠的數據傳輸,提出了一種基于握手等待協議的同步可靠的UART通信系統方案。采用3次等待握手協議實現通信的同步,在數據傳輸過程中加入同步數據改進傳輸應用的穩定性。
中圖分類號: TP368.1
文獻標識碼: A
The synchronous and reliable UART communication applied for the automatic biochemistry analyzer
ZHANG Hong Hui1,2,LI Hai Wen1, GAO Chun Hai1,2, WU Yi Hui1, XUAN Ming1
1. Changchun Institute of Optics, Fine Mechanics and Physics, Chinese Academy of Sciences, Changchun 130033,China;2. Graduate Institute of Chinese Academy of Sciences,Beijing 100039,China
Abstract: In order to realize synchronous and reliable UART communication, a new system was introduced by this paper. The communication was established by three-way handshaking, and flag data was added during the communication in order to improve the reliability and stability. The experiments results showed the communication system worked stably and reliably.
Key words : C8051F060; UART communication; three-way handshaking

    為了提高小型全自動生化分析儀的工作效率,其控制系統需采取并行處理的策略,以單個單片機為核心的單處理器因其功能的局限性,已不能完成多任務的并行處理。采用雙單片機的控制方案可以提高系統的性能,但必須為雙機通信提供穩定可靠的方案。
  在傳統的8位、16位及32位處理器中,一般都帶有UART串行口。傳統基于UART的數據通信有2種方式:查詢方式和中斷方式。查詢方式下CPU的負擔較重,浪費了處理器資源,不能夠及時處理其他事件[1];另外,因發送端與接收端不能同步,當數據需要接收而接收端未及時響應時,就導致數據的丟失,造成通信不可靠。中斷方式可以在接收到或者發送完數據時產生中斷,在中斷服務進程中完成數據存儲與處理。由于中斷方式下CPU利用率較高,也能夠實現發送與接收的同步[1],因此在CPU任務簡單的系統中,一般采用中斷方式實現UART數據通信。但是小型全自動化生化分析儀控制系統需要實現多電機位置的閉環控制、多傳感器的數據采集及處理、病人資料的傳輸處理等任務,采用中斷方式的UART通信時,一方面帶來中斷的優先級分配問題,當系統處于更高優先級的中斷處理子程序中時,導致串行通信的中斷不能及時被響應,造成數據丟失;另一方面為協調雙處理器間各部件的協同工作,有時不允許程序的正常執行流程被打斷,禁止中斷響應。為了保證串口通信的可靠性與穩定性,在設計小型全自動生化分析儀的控制系統時,采用了基于3次等待握手協議的同步、可靠的UART通信。本文將分別從物理層、傳輸層與應用層介紹等待握手協議在同步可靠的UART通信中的實現。
1 物理層
  物理層實現通信底層的物理連接,為數據端設備提供傳送數據的通路,其作用是確保比特流能在物理信道上傳輸[2]。物理層的連接由單片機的異步通信端口(UART串口)實現。
1.1 異步通信簡介[3-4]
  在異步通信中,數據是以字符為單位組成字符幀進行傳送的。發送端與接收端分別按字符幀規定的格式和波特率來協調數據的發送和接收。字符幀和波特率可以由用戶根據實際情況選擇。
    字符幀由起始位、數據位、停止位和空閑位4部分組成,如圖1所示。


1.2 C8051F060的UART
    C8051F060 是SiLab公司推出的混合信號系統芯片,是高度集成的片上系統,具有高速指令處理能力[3]。C8051F060有2個UART口,并沒有分配在固定的I/O端口上,而是需要通過優先權交叉開關譯碼器進行分配。“交叉開關”按優先權順序將端口0~3的引腳分配給器件上的數字外設。C8051F060的UART串口與端口的連接有多種形式,靈活可靠。
2 傳輸層
  傳輸層實現數據流的傳輸,并負責傳輸控制,具備流量控制的功能。其目的是為應用層提供可靠無誤的數據傳輸。傳輸層的服務要經歷傳輸連接建立階段和數據傳送階段[2]。該層由軟硬件結合實現。硬件實現傳輸線路與控制線路的連接,軟件對其進行設置和控制。
2.1 傳輸層的硬件電路設置
  傳輸層的數據傳輸線路為物理層的UART串口,其傳輸連接的建立、傳輸流量的控制則通過單片機的另外2個獨立I/O口,用于實現3次等待握手協議。電路設計的原理為:發送端單片機UART口的TX0和RX0分別連接到接收端單片機的UART口的RX0和TX0。在每1個單片機上分別使用2個I/O端口用于握手信號的發送和接收。其電氣連接如圖2所示。

UART傳輸層的硬件電路設置

2.2 傳輸層的軟件設計原理
    為實現數據通信的同步和提高通信的可靠性,傳輸層采用3次等待握手協議實現數據的實時同步通信。協議的原理如圖3所示。

  協議的原理如下:
    (1)當發送端要發送數據時,發出第1次握手信號,通知接收端,第1次握手信號始終有效,直到收到接收端對第1次握手信號的應答信號,即第2次握手信號。當發送端接收到第2次握手信號后,使第1次握手信號無效,發出對第2次握手信號的應答信號,即第3次握手信號,并隨即發送數據。至此,3次握手協議完成,發送端與接收端實現了數據的同步傳輸。
  (2)當接收端要接收數據時,首先等待發送端發出的第1次握手信號,當發送端發送第1次握手信號后,表明發送端已經準備好要發送數據,接收端將第2次握手信號持續一段時間后清除,等待第3次握手信號。檢測到第3次握手信號后,隨即開始接收數據。至此,3次握手協議完成,發送端與接收端實現了數據的同步傳輸。
2.3 傳輸層的軟件實現
  傳輸層的軟件與硬件電路密切相關,傳輸層的軟件質量的好壞決定了最終應用層軟件的質量。在傳輸層的軟件實現中,與硬件相關的系統初始化尤為重要。系統上電后,首先要進行的就是初始化,初始化包括系統時鐘初始化、EMIF初始化、定時器初始化、端口初始化以及交叉開關的配置等??梢酝ㄟ^設置相應的特殊功能寄存器(SFR)來進行。由于篇幅所限,這里主要介紹關鍵初始化模塊:端口初始化與UART初始化。系統的初始化分為主機的初始化與從機的初始化部分。
2.3.1 端口初始化
  端口初始化的關鍵是合理地分配C8051F060的數字外設,使其依據硬件電路的設計,對交叉開關進行配置,并設置相應的端口輸入輸出類型。主機端口初始化中交叉開關配置部分的程序如下:
void  MasterPORTInit (void)        
{
    OldSFRPAGE = SFRPAGE;   
    SFRPAGE = CONFIG_PAGE;                //切換頁面地址
       XBR0 = 0x02;                                    //SPI0連接到端口
                                         //腳P0.0~P0.3
       XBR1  = 0x00;
       XBR2  = 0x44;                                  //弱上拉全局禁止,交叉
                                                             //開關使能, UART連接到P0.4~P0.5
       SFRPAGE = OldSFRPAGE;               //恢復頁面地址   }
  從機的端口初始化與主機的端口初始化原理相同,這里不再累述。
2.3.2 UART初始化
    UART初始化主要包括時鐘源的選擇、工作方式的選擇,邏輯電平的選擇及處理中斷的方式等,其中主機的UART初始化程序如下:
void  MasterUARTInit(void)
{
    OldSFRPAGE = SFRPAGE;
    SFRPAGE = UART_PAGE;     //切換頁面地址
    SCON1 = 0x40;                      //波特率可編程的8位UART,
                                                //停止位的邏輯電平被忽略,
                                               //禁止接收,清空發送及接收中斷標志
    SFRPAGE = OldSFRPAGE;            //恢復頁面地址
}
    傳輸層數據傳輸軟件實現元數據傳輸的功能,在這里實現傳輸層的3次握手協議。依據3次握手協議的設計原理,主機發送軟件的實現如下:
{
    while(P0_6==1)            //等待第2次握手信號
     P0_7=0;                      //發出第1次握手信號
    Delay1us(1);      //延時1 ?滋s
    P0_7=1;       //發送第3次握手信號
}
    工作時序為:當主機需要發送數據時,首先將P0_7設置為低,即為第1次握手信號,從機檢測到該信號后,知道主機將發送數據,于是發出第2次握手信號,將與主機P0_6相連的引腳置低。主機檢測到P0_6為低電平,即第2次握手信號后,將發出第3次握手信號,即把P0_7設置為高電平,并隨即發送數據。
    從機接收數據時的軟件實現如下:
{
    while(P5_5==1)                 //等待的第1次握手信號
    P5_4=1;   
    P5_4=0;                           //發出第2次握手信號
    Delay1us(1);
    P5_4=1;
    }
    從機的P5_4、P5_5分別連接主機的P0_6、P0_7。當從機接收數據時,首先等待主機發送的第1次握手信號,即主機的P0_7端口(從機的P5_5端口)為低電平。若檢測到第1次握手信號,則發送第2次握手信號(即將P5_4置低),隨即將P5_4拉高,檢測到第3次握手信號后開始接收數據。為實現軟件的簡便性,減少編程出錯的概率,本文定義了2個宏來完成上述握手的過程。宏定義如下:
    #define Send while(P0_6==1)P0_7=0;
    \Delay1us(1); P0_7=1;          //主機發送的宏定義
    #define Receive  OldSFRPAGE=SFRPAGE;
    \SFRPAGE=CONFIG_PAGE;while(P5_5==1)P5_4=1;
    \P5_4=0;Delay1us(1);P5_4=1;
    \SFRPAGE=OldSFRPAGE;           //從機接收的宏定義
    主機發送與從機接收元數據的函數分別如下:
void  MasterSendUART (Uchar sdata)
{
        Send;                                                   //完成握手協議
        OldSFRPAGE = SFRPAGE;               //寄存器頁面切換
        SFRPAGE = UART_PAGE;
        TI1 = 0;                                            //清除發送完成中斷標志
        SBUF1 = sdata;                                  //發送數據
        while(TI1==0);                                  //等待發送完成
        TI1 = 0;                                            //清空發送完成標志
        SFRPAGE = OldSFRPAGE; }
        Uchar SlaverReceiveUART(void)
{
        Receive;                                            //完成握手協議
        OldSFRPAGE = SFRPAGE;
        SFRPAGE = UART_PAGE;                //寄存器頁面切換
        SCON1 = 0x50;                                  //允許接收,清空接收完標志
        while((SCON1&0x01)==0);                   //等待接收完成
        ReData = SBUF1;                                 //接收數據
        SCON1 = 0x40;                                   //清空接收及發送完成標志位
        SFRPAGE = OldSFRPAGE;
        return ReData;                                  //返回接收到的數據
}
3  應用層
    應用層軟件主要為實際應用服務,實現系統的應用需求。本文所設計的通信方案是為小型全自動化的生化分析儀控制系統的數據通信服務的,應用程序包括生化檢測結束后病人檢測結果的交互,以及雙機對各功能器件的控制指令等,下面簡要介紹應用層軟件的流程。
  應用層軟件完成數據的發送和接收,應用層數據接收軟件將實現數據的完整接收與存儲,發送軟件完成完整的數據發送。小型全自動生化分析儀控制系統的通信內容有結果數據和控制指令。為進一步保障數據傳輸的可靠性與同步性,在應用層的數據傳輸中加入了同步數據。應用層函數完成有關數據接收的處理,首先判斷接收到的數據類型,并依次調用相應的軟件處理模塊來對接收后數據的存儲。圖4為應用層的接收端軟件的執行流程。


4  結果
  本文在小型全自動生化分析儀控制系統的通信中分別使用基于3次等待握手協議的UART通信與基于查詢式的UART通信方案并進行了對比,其結果如表1所示。當系統使用基于查詢式的UART通信時,因雙處理器未能同步工作,導致了接收端未能及時查詢及存儲數據,造成了數據的丟失。而通信建立時的等待握手協議則提高了通信的穩定性與可靠性。


    本文提出的基于3次等待握手協議的UART傳輸通信同步可靠,應用于小型全自動生化分析儀的控制系統通信時,解決了查詢方式下UART因接收與發送端未同步造成數據幀丟失及中斷方式打斷正常程序流程執行的問題,取得了令人滿意的效果。
參考文獻
[1]  楊福廣,李貽斌,尹占芳,等.ARM中基于DMA的高效UART通信及其應用[J]. 微計算機信息,2008(1-2).
[2]  TANENBAUM A S. AMSTERDAM U V. The netherlands computer networks,forth editI/On[M].北京:清華大學出版社,2004.
[3]  新華龍電子有限公司.C8051F060混合信號ISP FLASH微控制器數據手冊.潘琢金,譯. 2004.
[4]  王曉劍,潘順良,沈為群,等. TMS320DM642中利用McBSP與EDMA實現UART[J]. 電子測量技術 2008(2).
[5]  Cygnal Integrated Products. Inc. C8051F單片機應用解析[M].潘琢金,譯.北京:北京航空航天大學出版社, 2002.
[6]  何建標,王宏遠,林靜宜,等.基于最佳接收的UART的設計與實現[J].電子技術應用,2006,34(8).

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          日韩视频一区二区三区| 老色鬼久久亚洲一区二区| 一区二区三欧美| 久久国产精品网站| 久久久久亚洲综合| 亚洲自拍三区| 一区二区三区欧美激情| 亚洲一二三区视频在线观看| 国产综合视频在线观看| 国产区亚洲区欧美区| 久久精品一区二区国产| 亚洲国产精品悠悠久久琪琪| 欧美尤物巨大精品爽| 欧美激情精品久久久| 在线成人av.com| 欧美中文字幕| 一本到高清视频免费精品| 亚洲二区视频在线| 亚洲一区综合| 在线色欧美三级视频| 一区二区欧美激情| 欧美理论片在线观看| 欧美日韩色一区| 欧美日韩在线观看一区二区| 国产亚洲午夜| 午夜在线电影亚洲一区| 亚洲免费视频网站| 亚洲另类视频| 91久久嫩草影院一区二区| 亚洲人成网站在线观看播放| 久久蜜桃资源一区二区老牛| 久久久久国色av免费看影院| 亚洲一区二区精品视频| 久久精品一区蜜桃臀影院| 欧美精品久久久久久久免费观看| 牛夜精品久久久久久久99黑人| 久久精品国产久精国产思思| 亚洲你懂的在线视频| 欧美区在线播放| 久久大综合网| 免费日本视频一区| 久久久久久久波多野高潮日日| 欧美日韩不卡视频| 亚洲综合色丁香婷婷六月图片| 国产精品成人aaaaa网站| 国产一区二区三区在线观看视频| 亚洲小说欧美另类婷婷| 国产曰批免费观看久久久| 久久亚洲色图| 一二三区精品| 影音先锋久久资源网| 一区二区欧美精品| 国产人久久人人人人爽| 国产精品久久福利| 亚洲美女啪啪| 麻豆精品精华液| 亚洲巨乳在线| 欧美色图一区二区三区| 日韩视频国产视频| 欧美成人伊人久久综合网| 国产欧美韩国高清| 一本色道久久综合狠狠躁篇怎么玩| 欧美国产国产综合| 欧美激情第8页| 国产精品男人爽免费视频1| 久久精品盗摄| 亚洲激情成人网| 欧美日韩三级一区二区| 国产亚洲欧美中文| 黄色影院成人| 欧美福利在线| 亚洲一区在线观看免费观看电影高清| 亚洲视频第一页| 伊人一区二区三区久久精品| 国产亚洲美州欧州综合国| 国产一区二区三区精品久久久| 久久精品夜色噜噜亚洲aⅴ| 99国产精品99久久久久久| 激情成人中文字幕| 久久精品水蜜桃av综合天堂| 久久噜噜噜精品国产亚洲综合| 免费毛片一区二区三区久久久| 99这里只有精品| 狠狠色丁香婷婷综合| 久久国产精品久久精品国产| 一区二区三区日韩欧美| 欧美中在线观看| 亚洲国产欧美另类丝袜| 欧美日韩精品在线观看| 久久久综合香蕉尹人综合网| 欧美日韩国产一区二区三区地区| 一本色道久久综合亚洲91| 亚洲午夜精品网| 日韩网站免费观看| 国产三区精品| 欧美午夜激情小视频| 欧美亚州一区二区三区| 欧美绝品在线观看成人午夜影视| 欧美性猛交一区二区三区精品| 欧美日韩国产电影| 亚洲国产一区二区三区a毛片| 欧美日韩伦理在线免费| 国产性猛交xxxx免费看久久| 欧美一区二区网站| 久久人人爽人人爽| 国产日韩欧美视频在线| 亚洲国产综合在线看不卡| 欧美特黄一级大片| 国产精品福利网站| 在线观看免费视频综合| 亚洲性视频网站| 玖玖玖免费嫩草在线影院一区| 国产欧美69| 久久国产乱子精品免费女| 欧美在线观看日本一区| 欧美国产高清| 亚洲电影成人| 国产欧美日韩高清| 在线免费观看日本一区| 亚洲国产成人精品女人久久久| 国产精品一区一区三区| 久久男人资源视频| 欧美精品一区二区高清在线观看| 国产丝袜一区二区| 激情成人亚洲| 午夜精品一区二区三区电影天堂| 亚洲影院高清在线| 亚洲一区二区在线| 影院欧美亚洲| 国模精品一区二区三区色天香| 亚洲国产欧美国产综合一区| 日韩午夜激情av| 一区二区三区四区五区视频| 久久国产精品72免费观看| 欧美精品国产精品日韩精品| 免费在线成人av| 亚洲一区三区电影在线观看| 久久久久久一区| 亚洲欧美中文另类| 国产精品入口日韩视频大尺度| 久久人人爽人人爽| 玖玖在线精品| 久久综合一区二区三区| 永久免费精品影视网站| 国产一区欧美| 亚洲第一伊人| 美女脱光内衣内裤视频久久网站| 国内外成人在线| 国产手机视频一区二区| 夜夜嗨av色综合久久久综合网| 久久精品30| 伊人影院久久| 国产一区二区三区成人欧美日韩在线观看| 亚洲一二三级电影| 日韩亚洲不卡在线| 国产综合色精品一区二区三区| 国产日产亚洲精品系列| 欧美日韩视频第一区| 亚洲精品中文字幕女同| 性欧美1819性猛交| 国产欧美一区二区三区国产幕精品| 中日韩美女免费视频网址在线观看| 国产精品高潮呻吟久久av无限| 亚洲肉体裸体xxxx137| 欧美极品一区二区三区| 欧美三级免费| 久久综合网hezyo| 亚洲深爱激情| 欧美午夜视频网站| 国产曰批免费观看久久久| 开心色5月久久精品| 日韩午夜在线视频| 国产精品高潮粉嫩av| 久久久www成人免费毛片麻豆| 久久久久国产精品麻豆ai换脸| 国产欧美一区二区精品婷婷| 国产在线麻豆精品观看| 美女精品视频一区| 国产精品嫩草影院av蜜臀| 亚洲欧美国产三级| 久久噜噜亚洲综合| 欧美激情视频网站| 欧美日韩另类视频| 久久亚洲私人国产精品va媚药| 欧美亚洲尤物久久| 国产亚洲欧美一区在线观看| 亚洲高清一二三区| 国产精一区二区三区| 欧美韩国日本综合| 国产综合视频在线观看| 欧美一区中文字幕| 国产精品中文字幕欧美| 中日韩午夜理伦电影免费| 先锋影院在线亚洲| 久久婷婷国产综合尤物精品| 免费成人黄色| 欧美日韩性生活视频| 欧美日韩亚洲视频| 国产精品性做久久久久久| 久久日韩精品| 欧美日韩国产美| 国产原创一区二区| 国产精品第十页| 一区二区三区四区蜜桃| 亚洲视频999| 亚洲视频一区二区免费在线观看| 亚洲精品国产精品久久清纯直播| 在线成人性视频| 国内成人自拍视频| 欧美一区二区三区在线| 亚洲四色影视在线观看| 亚洲精品国产精品国自产在线| 一区一区视频| 亚洲电影免费观看高清完整版在线观看| 久久国产福利国产秒拍| 久久国产一区二区| 欧美午夜在线观看| 鲁大师成人一区二区三区| 一区二区三区福利| 欧美影院一区| 在线观看亚洲a| 伊人久久久大香线蕉综合直播| 欧美成年人视频| 国产一区二区三区高清播放| 欧美一区二区三区免费视频| 国产精品福利影院| 国产精品丝袜91| 国产精品永久免费观看| 亚洲欧美成aⅴ人在线观看| 欧美一级大片在线观看| 久久综合电影一区| 亚洲影视中文字幕| 国产精品久久久一区二区| 国产精品嫩草99a| 国产精品美女视频网站| 午夜精品久久久久久久久久久| 久久美女艺术照精彩视频福利播放| 亚洲自拍都市欧美小说| 久久综合九色欧美综合狠狠| 黄色欧美成人| 久久综合网色—综合色88| 久久av红桃一区二区小说| 亚洲欧美日本视频在线观看| 久久久久欧美| 久久精品国语| 在线亚洲自拍| 国产亚洲成av人在线观看导航| 亚洲国产国产亚洲一二三| 欧美高清在线精品一区| 欧美午夜免费| 国产精品xxxxx| 久久久99爱| 欧美精品自拍| 亚洲欧美中文在线视频| 亚洲每日更新| 一区二区精品在线观看| 欧美精品一区二区视频| 欧美日韩视频在线一区二区| 欧美视频福利| 久久艳片www.17c.com| 欧美另类久久久品| 日韩亚洲精品在线| 欧美精品999| 国产综合久久久久久鬼色| 亚洲欧美影音先锋| 一区二区高清在线观看| 欧美日韩在线一区| 亚洲主播在线观看| 最新高清无码专区| 久久综合九色综合久99| 免费的成人av| 欧美成人精精品一区二区频| 91久久精品一区二区别| 欧美一级专区免费大片| 国产毛片精品视频| 牛牛精品成人免费视频| 欧美日韩免费观看一区三区| 久久久福利视频| 欧美视频一区二区三区在线观看| 亚洲免费电影在线| 亚洲久久一区二区| 欧美mv日韩mv国产网站| 国产精品永久免费在线| 欧美精品久久久久a| 国产精品女同互慰在线看| 一区二区三区偷拍| 国产三区精品| 亚洲一区二区三区精品视频| 亚洲一区二区三区视频播放| 国产亚洲一区在线播放| 国产精品黄视频| 日韩图片一区| 欧美一区二区三区四区在线观看地址| 国产日韩欧美精品综合| 亚洲乱码国产乱码精品精98午夜| 国产亚洲成av人片在线观看桃| 欧美日韩国产影片| 午夜精品一区二区三区在线| 国模套图日韩精品一区二区| 亚洲一区二区三区四区五区午夜| 国产一区深夜福利| 亚洲精品乱码久久久久| 亚洲日韩欧美一区二区在线| 欧美精品久久久久久久| 亚洲精品日日夜夜| 亚洲一区二区网站| 国际精品欧美精品| 小黄鸭精品aⅴ导航网站入口| 午夜综合激情| 久久久精品999| 亚洲一区在线视频| 国产婷婷色一区二区三区在线| 老牛国产精品一区的观看方式| 国产欧美精品在线观看| 狠狠久久综合婷婷不卡| 欧美激情欧美狂野欧美精品| 老司机成人网| 亚洲综合视频一区| 亚洲欧美日本伦理| 1024日韩| 国产精品99一区| 亚洲免费在线观看视频| 欧美一区二区三区啪啪| 狠狠色丁香久久综合频道| 亚洲在线国产日韩欧美| 亚洲欧美日韩专区| 欧美高清日韩| 国产精品福利影院|