<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 異步串行通信協(xié)議的設計與實(shí)現

異步串行通信協(xié)議的設計與實(shí)現

作者:賈昊 時(shí)間:2017-02-27 來(lái)源:電子產(chǎn)品世界 收藏

引言
     在單片機控制系統中,CPU和外部通信主要有兩種方 式:并行通信和通信。并行通信,即數據的各位同時(shí)傳 送;通信,即數據按位次序傳送。通信能夠節省傳 輸線(xiàn),特別是數據位數很多和傳輸距離較遠時(shí),這一優(yōu)點(diǎn)更 為突出?,F在流行的高級語(yǔ)言一般都支持對串口直接操作, 常用的單片機也把串行通訊口作為一個(gè)標準接口集成在單片 機內,串行通訊接口的開(kāi)發(fā)具有開(kāi)發(fā)周期短、開(kāi)發(fā)簡(jiǎn)單等特 點(diǎn)。目前異步串行通信已廣泛用于微機之間的通信、工業(yè)控 制系統中的數據采集與控制、遠程數據的傳送等領(lǐng)域。

1 串口通信的基本原理
在嵌入式系統中,串口是一種重要的數據通信接口, 其本質(zhì)功能是,在CPU和串行設備間進(jìn)行編碼轉換。當CPU 通過(guò)串行端口發(fā)送數據時(shí),字節數據轉換為串行的位串;接 收數據時(shí),串行的位串被轉換為字節數據。應用程序使用串 口進(jìn)行通信,必須在使用之前向操作系統提出資源申請要求 (打開(kāi)串口),通信完成后必須釋放資源(關(guān)閉串口)。
典型地,串口用于A(yíng)SCII碼字符的傳輸。通信使用3根線(xiàn)完成:(1)地線(xiàn);(2)發(fā)送數據線(xiàn);(3)接收數據線(xiàn)。串口通

本文引用地址:http://dyxdggzs.com/article/201702/344503.htm

圖1  通信命令格式  

圖2  通信時(shí)序
信最重要的參數是波特率、數據位、停止位和奇偶校驗。對于兩個(gè)互相通信的端口,這些參數必須一致:波特率衡量通 信速度,表示每秒鐘傳送的bit的個(gè)數;數據位衡量通信中 實(shí)際數據位寬,標準值是5、7和8位。如何設置取決于具體 需求;停止位用于表示單個(gè)包的最后一位,典型值為1,1.5 和2位,停止位不僅僅表示傳輸的結束,還能提供計算機校 正時(shí)鐘同步的機會(huì );奇偶校驗位是串口通信中一種簡(jiǎn)單的檢 錯方式,有四種檢錯方式——偶、奇、高和低,也可以沒(méi)有 校驗位。

2 異步串行的設計
是通信雙方共同遵守的約定,對同步方式、 傳送速度、傳送步驟及檢糾錯方式定義等問(wèn)題做出統一規 定。
在 控 制 系 統 中 , 單 片 機 間 通 信 一 般 采 用 異 步 串 行 通 信,傳統的異步串行一般采用如圖1所示的命令格 式,命令消息括幀頭(命令碼)、 數 據 場(chǎng) 、 校 驗 場(chǎng) ;響應消息為ACK信號 ( A C K 取 不 同 的 值 , 例 如 : 正 確 響應 ACK = 0x55; 錯 誤 響 應 A C K =0 x A A ) 。 由 于 串 口 通信存在很多不可靠因素,例如由

表1  通信命令
電磁干擾造成幀字節丟失、 傳輸誤碼, 以及因主從單片機處理繁忙而造成響應延遲等。傳統的通信協(xié)議難以克服由單片機處理
繁忙造成的響應延遲現象。如圖2所示,當主芯片發(fā)送[命令1]后,當超過(guò)響應等待時(shí)間而沒(méi)有得到ACK時(shí),主芯片發(fā)送[命令2],在下一個(gè)響應等待時(shí)間內將收到兩次[ACK],這種


圖4  響應處理程序  

圖5  整體軟件設計
現象將導致主芯片做出錯誤判斷,調用錯誤的程序分支,嚴 重影響系統的正常運行。因此,本文在通信協(xié)議的設計中, 采用響應消息加權的方法,提高了通信的可靠性,保證系統 正常運行。
本 文 設 計 的 響 應 消 息 加 權 式 通 信 協(xié) 議 , 實(shí) 現 方 式 如 下:通信協(xié)議采用如圖3所示的格式,命令消息和響應消息 采用相同的幀格式,包括幀頭(命令碼)、數據場(chǎng)、校驗場(chǎng); 其中響應消息幀頭 = 命令消息幀頭的加權(RPS = CMD | 0x80 或RPS = CMD | 0xC0),主控芯片通過(guò)對響應消息的處理, 識別出響應的類(lèi)型。通信協(xié)議各數據場(chǎng)的定義如表1所示, 本協(xié)議由nByte(n是用戶(hù)自定義的任意正整數)構成,D1[7:6]為通信類(lèi)型,D1[5:0]為指令碼,D2~Dn-1為數據場(chǎng),Dn為校驗場(chǎng)。
程序處理過(guò)程如圖4所示,當接收到響應時(shí),響應處理 程序對響應消息幀頭進(jìn)行0xC0位與運算,還原并判斷響應 類(lèi)型;同時(shí)對幀頭進(jìn)行0x3F位與運算,還原出當前響應對應 的命令消息,然后調用相應的應用程序執行。例如,主芯

圖6  硬件原理框圖
片發(fā)送命令消息,命令消息幀頭D1=0x02,從芯片正常接收 并進(jìn)行加權響應,響應消息幀頭D1=0x82,主芯片再經(jīng)過(guò)位 與運算判斷響應類(lèi)型并還原出與之相對應的命令消息幀頭
0x02。然后調用相應的程序執行,完成一次通信周期。

3 程序設計
在設計通信程序時(shí)充分考慮了主從單片機在通信過(guò)程 中的不確定因素,因此通信協(xié)議采用加權響應式通信協(xié)議, 克服主從單片機處理繁忙而造成的響應延遲;對于通信過(guò)程 中因干擾而導致通信數據丟失、傳輸誤碼等現象,可以在程 序設計時(shí)采用超時(shí)定時(shí)、計數重發(fā)等方法,保證通信的準確 性。軟件程序設計中,主控芯片采用芯片內部的串口2,通信波特率為9600 bit /s,8 位數據,1位停止位。軟件編寫(xiě)嚴格按照異步通信的時(shí)序進(jìn)行,其響應處理程序流程如圖4。

4 系統的實(shí)現及應用
本協(xié)議的設計初衷是用于一款內嵌DTMB接收功能的便 攜式DVD產(chǎn)品的操作控制芯片與DTV解碼芯片間的通信服 務(wù)。該產(chǎn)品為商業(yè)性產(chǎn)品,質(zhì)量是產(chǎn)品的生命。為保證產(chǎn)品 質(zhì)量,提高通信的可靠性,在設計異步串行通信時(shí)采用本文 的響應加權式通信協(xié)議。系統通信控制實(shí)現如圖5。
硬件系統由主控芯片和DTV解碼芯片構成,原理框圖如圖6所示。主控芯片內部串口2的收發(fā)引腳與DTV解碼芯片 的收發(fā)引腳相連接。主控芯片在整個(gè)通信過(guò)程中起主導作用,用于發(fā)起通信與判斷DTV解碼芯片的響應。DTV解碼芯片接收主控芯片發(fā)送的命令,解析后進(jìn)行相關(guān)的動(dòng)作。

5 結束語(yǔ)
本協(xié)議的設計初衷是為了克服主從單片機處理繁忙而 造成的響應延遲現象,同時(shí)又具有可擴展性,其中數據場(chǎng)的 字節長(cháng)度可以由用戶(hù)自行定義。將本協(xié)議應用到DVD產(chǎn)品的通信控制時(shí),經(jīng)過(guò)測試,在波特率9600bit/s下可以成功通信;并且本協(xié)議能保證主控 端正確識別響應類(lèi)型以及還原出當前響應相對應的命令消 息,保證主控芯片做出正確的處理,從而保證整個(gè)系統的正 確運行。



關(guān)鍵詞: 串行 通信協(xié)議

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>