《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 兩種MCU間的串行通信協議設計
兩種MCU間的串行通信協議設計
林漢成,胡方明,王群澤,吳圣陶,熊 鑫
摘要: Cortex-M3是ARM公司推出的32位處理器,使用了最新一代的ARMv7架構,具有高性能、低功耗和低成本的優點。對那些對功耗與成本敏感、但又要求較高性能的嵌入式應用來說,Correx-M3無疑是最佳解決方案;而對成本要求苛刻、運算能力要求不高的設備來說,嵌入成熟穩定的8051處理器,已經成為了業內的流行做法。目前,越來越多的嵌入式系統同時使用了上述兩種MCU,因此如何使Cortex-M3與8051之間可以高效地進行信息交互,是實現設計目標的關鍵。
關鍵詞: 接口IC 通信 串行 MCU
Abstract:
Key words :

引言
    Cortex-M3是ARM公司推出的32位處理器,使用了最新一代的ARMv7架構,具有高性能、低功耗和低成本的優點。對那些對功耗與成本敏感、但又要求較高性能的嵌入式應用來說,Correx-M3無疑是最佳解決方案;而對成本要求苛刻、運算能力要求不高的設備來說,嵌入成熟穩定的8051處理器,已經成為了業內的流行做法。目前,越來越多的嵌入式系統同時使用了上述兩種MCU,因此如何使Cortex-M3與8051之間可以高效地進行信息交互,是實現設計目標的關鍵。

1 方案設計
    要進行信息交互,離不開物理接口。在嵌入式應用中,目前常用的接口有UART、SPI和I2C等串行接口。UART接口只需兩根數據線就可以工作,時序控制簡單,大部分設備都整合了這種接口。而且,經過電平轉換后UART的TTL電平可以轉換成RS232電平,RS232接口是計算機標準配置的通信接口,可以通過超級終端查看串口的數據,便于使用PC機對線路進行檢測分析。因此,本設計采用UART接口作為Cortex-M3與C51之間的通信接口。
    考慮到各種需求,本文設計了一種基于UART接口的,用于Cortex-M3和C51之間的通信協議,使Cortex-M3與C51之間可以高效地進行信息交互。當兩個MCU之間需要進行通信的時候,發送方把原始數據下放給通信協議,通信協議按照特定格式把數據打包,通過UART接口發送給對方。接收方收到數據時,MCU運行相應的通信協議,把數據解包,就可以得到發送方的原始數據,將其交付給上層程序。體系結構如圖1所示。

a.jpg


    如果使用其他串行接口,原理大體相同,只需對硬件作相應改動,即對接口控制模塊稍作修改即可投入使用。
    下面以實際工程中某種多媒體系統為例詳細說明。該系統采用了以Cortex-M3為內核的STM32處理器和嵌入了C51核的MST776視頻處理芯片,使用UART接口進行通信。

2 具體實現
2.1 硬件設置
    具體的器件不同,UART的工作方式也有所區別,主要表現在波特率、停止位、數據字長度等參數上。當兩個器件用UART連接時,所有參數必須完全一致,否則通信很容易出錯。在此,要特別注意波特率的設置:當線路質量好的時候,波特率可以設置得高點,以獲得較高的傳輸速率;線路質量差的時候,就要減小波特率,以降低誤碼率。
    本設計中,STM32與MST776都整合了UART接口,只需配置少量電阻;同時,線纜長度不超過20 cm,使用環境的電磁干擾小,波特率可以設置為38 400bps,甚至更高。另外,考慮到C51的處理速度較低,因此波特率不應設置得太高,避免造成C51側數據溢出,進而造成死機。
    本設計只需使用兩根數據線來實現兩個MCU之間的互連,把STM32上選定的UART接口的TX與對端的UART接口的RX相連,把RX與對端的UART接口的TX相連。
2.2 軟件設計
2.2.1數據幀解析
    Cortex-M3側和C51側采用同樣的數據幀格式,以簡化編程的難度,增強程序的可移植性。數據幀由起始標識符、數據長度、類型ID、通信內容、循環冗余校驗碼構成,如圖2所示。

b.jpg


    (1)起始標識符
    起始標識符的作用主要是用于定界,把不同的數據幀在一連串的數據中分離開來。起始標識符內的數據不能與數據幀中可能出現的任何數據相同,否則會引起歧義,導致定界失敗,造成數據錯誤。在本例中,為2個字節,選用0xFF+0xAA,因為該組合與其他數據具有排他性,不會引起歧義。
    (2)數據長度
    數據長度的計算方法為,從該位開始,到最后一個數據位結束,也就是CRC校驗位之前的一個字節。雖然使用Length位可以表示很長的數據幀,但在應用中應盡量采用短幀,以避免各種干擾因素造成少數數據位出錯,導致大量數據無效,影響通信效率。同時,應該設置一個最大發送長度,以便設置超時重傳計時器的值。本例采用1個字節,最大幀長為260個字節。
    (3)類型ID
    根據實際需要,類型ID可以采用1個或多個字節,用于表示該數據幀的作用類型。本例中,采用1個字節,可以表示256種作用類型,例如設備參數幀(如音量)、線路探測幀或應答幀。
    (4)通信內容
    通信內容與類型ID結合,表達特定意義。相同的Data,但ID不同的話,表達的信息不一樣。根據不同的ID,Data的長度可能會有所不同。
    (5)循環冗余校驗碼
    循環冗余校驗碼用于校驗接收到的數據是否在傳輸過程中出錯。本例中采用CRC-16算法,占2個字節,對從起始標識符開始到最后一個通信內容位的所有數據進行運算,把得到的結果附在最后。
2.2.2 收發流程
    發送流程:將要發送的數據添加起始標識符和長度后,計算CRC-16校驗碼,附在最后,形成一個完整的數據幀,然后通過UART發送出去。發送完畢后啟動超時重傳計時器。
    接收流程:當接收到一個字節的數據時,根據系統狀態采取不同的操作。當數據上交后,上層程序根據類型ID和通信內容來作出相應的響應。具體流程如圖3所示。

c.jpg


2.2.3 線路檢測機制
    雖然本例中的UART接口是一種有線通信,而且線纜長度不超過20 cm,但仍有可能出現插口松脫、線纜銅芯斷裂等情況,造成線路中斷。對于轉換成RS232電平的應用,雖然RS232的最大傳輸距離不超過15 m,但如果在惡劣的環境中使用,仍無法完全避免線路發生中斷。因
此,有效的線路檢測機制是必需的。
    本設計中,當本端系統狀態為Null時,每間隔1 s就發送一個線路探測幀,類型ID=0x00,通信內容=0x55。同時,如果本端在5 s內收不到任何新數據或者線路探測幀,則表明線路中斷,向上層程序發送線路中斷報告。對于需要交互秒時間信息的應用,線路探測幀可以省略,只檢測秒時間信息就可以達到線路探測的目的。
2.2.4 校正機制
    因為串行通信普遍存在誤碼的問題,因此簡單有效的校正機制是必須的。由于采用的是點到點的串行接口,數據幀都是按照發送的先后順序到達接收端,不會出現后一幀比前一幀早到的情況,只需要采用CRC-16和簡單的ARQ機制,再加上超時重傳機制,就可以提供高可靠的數據傳輸。
    接收方收到一個完整的數據幀之后,必須給發送方返回一個ACK幀,該幀的類型ID=0xFF。通信內容根據校驗的結果有所不同:校驗正確的,Data=1;校驗失敗的,Data=0。
    發送方發送完一個完整的數據幀之后,啟動超時重傳計時器。如果在計時器超時之前沒有收到ACK幀,或者收到的ACK幀的Data為0,就重發上一個數據幀;當收到ACK幀之后,計時器歸零。發送方只有在收到Data為1的ACK幀后,才能發送下一個數據幀。當連續超時5次時,表明線路中斷,向上層程序發送線路中斷報告。
    ACK幀和線路檢測幀無須應答。發送這兩種幀之后,無須設置超時重傳計時器。
2.2.5 接口控制
    接口控制主要管理UART接口的收發,在此采用中斷的方式來實現。若有數據需要發送,則必須等發送緩存為空時,才能把數據寫入到發送緩存,否則會把舊的數據覆蓋掉,造成數據丟失。當數據寫入結束后,產生一個發送中斷,通知MCU把數據通過UART接口發送出去。當收到一個數據時,UART產生一個中斷信號,通知MCU把數據放入接收緩存,保存完成后清除中斷信號,等待接收下一個數據。只需修改接口控制部
分,就可以適用于不同的硬件接口。

3 實驗結果以及分析
    為了驗證本串行通信協議的有效性,連接STM32和MST776的UART接口,在這兩個MCU上運行本通信協議,并在線纜上引出兩個探測點,使用MAX232芯片進行電平轉換,然后接到PC機的RS232接口上,進行數據檢測。通過Windows的超級終端,可以在PC機上看到UART接口收發數據的狀況。同時,通過JTAG接口可以看到通信協議向上層程序交付的數據。
    實驗結果表明,本通信協議工作正常,收發數據正確,校正機制和線路檢測機制都工作良好。運行本通信協議后,兩個MCU都沒有出現數據溢出、死機等情況。這表明本文設計的串口通信協議能夠實現預期的功能,令Cortex-M3與C51之間可以有效地進行信息交互。

結語
    本文基于Cortex-M3與C51之間的通信需求,設計了一種基于數據幀的通信協議,使得兩個MCU間可以進行有效的信息交互。本設計已經在某型多媒體系統上得到應用,使用效果很好,表現非常穩定。本設計具有良好的可移植性和通用性,在另一個嵌入式項目中,經過對程序的少量修改,也在SPI接口上得到了應用。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美日韩在线播放一区| 国产精品久久久久久亚洲毛片 | 亚洲婷婷综合色高清在线| 亚洲国产精品一区二区www在线| 国内成人精品视频| 国产一区二区三区丝袜| 国产亚洲欧美另类中文| 国产无一区二区| 国产人久久人人人人爽| 国产精品免费看片| 国产精品五区| 国产麻豆综合| 国产视频精品xxxx| 国产私拍一区| 国语自产精品视频在线看一大j8| 国产一区二区三区黄| 国产一区二区三区精品欧美日韩一区二区三区| 国产欧美一区二区白浆黑人| 国产麻豆日韩| 国产一区二区三区高清在线观看| 狠狠色狠狠色综合| 亚洲第一页中文字幕| 亚洲欧洲日韩综合二区| 亚洲毛片在线免费观看| aaa亚洲精品一二三区| 在线亚洲观看| 性欧美videos另类喷潮| 亚洲成人在线免费| 99日韩精品| 中文网丁香综合网| 亚洲综合三区| 久久国产精品99国产精| 久久久久国产精品www| 蜜臀av性久久久久蜜臀aⅴ| 免费久久精品视频| 欧美精品亚洲精品| 国产精品ⅴa在线观看h| 国产欧美日韩不卡免费| 狠狠色狠狠色综合| 亚洲精品视频在线| 在线一区免费观看| 午夜视频精品| 最新亚洲激情| 中日韩视频在线观看| 欧美一区二区三区在线观看| 久久这里只有精品视频首页| 欧美日韩国产不卡| 国产伦精品一区二区三| 在线日韩欧美视频| 日韩视频二区| 亚洲欧美精品suv| 亚洲人线精品午夜| 亚洲欧美国产一区二区三区| 久久裸体艺术| 欧美日韩欧美一区二区| 国产伦精品一区二区三区高清版| 亚洲第一精品久久忘忧草社区| 亚洲乱码视频| 久久国产精品久久精品国产| 亚洲最新色图| 久久精品欧美日韩精品| 欧美激情bt| 国产欧美一区二区三区另类精品| 亚洲高清自拍| 亚洲欧美卡通另类91av| 亚洲精品欧美日韩专区| 欧美伊人影院| 欧美日韩国产一区| 韩国精品久久久999| 亚洲视频播放| 亚洲乱码国产乱码精品精| 欧美一区二区三区四区视频 | 欧美激情一区二区三区高清视频| 国产精品久久久久久久午夜| 在线日韩成人| 欧美亚洲三区| 亚洲天堂av综合网| 欧美国产欧美亚州国产日韩mv天天看完整| 国产精品国产福利国产秒拍| 亚洲国产你懂的| 欧美亚洲色图校园春色| 亚洲视频香蕉人妖| 嫩草国产精品入口| 国产欧美日韩专区发布| 亚洲乱码国产乱码精品精天堂| 亚洲福利小视频| 欧美影院一区| 欧美天天视频| 亚洲人成网站999久久久综合| 亚洲欧美日韩国产精品| 99国产精品视频免费观看一公开 | 国产精品美女| 亚洲精品资源| 日韩视频精品在线| 久久亚洲午夜电影| 国产伦精品一区二区三| 在线视频一区观看| 一区二区三区欧美在线| 欧美成人性网| 在线不卡a资源高清| 欧美中文字幕在线播放| 香蕉亚洲视频| 国产精品免费网站| 一本久久a久久免费精品不卡| 亚洲精品美女久久久久| 久久这里有精品视频| 国产亚洲毛片| 亚洲欧美一区二区三区极速播放 | 欧美一区二区三区久久精品| 亚洲欧美日韩综合一区| 欧美日韩美女在线| 亚洲精品久久久久久久久| 亚洲欧洲另类国产综合| 老鸭窝亚洲一区二区三区| 国产在线观看一区| 欧美一区91| 久久久久91| 娇妻被交换粗又大又硬视频欧美| 欧美在线你懂的| 久久久久久久尹人综合网亚洲| 国产偷久久久精品专区| 欧美在线免费观看| 久色婷婷小香蕉久久| 伊人狠狠色丁香综合尤物| 久久精品亚洲乱码伦伦中文 | a4yy欧美一区二区三区| 欧美日本精品| 日韩一区二区精品| 亚洲自拍三区| 国产乱人伦精品一区二区| 亚洲欧美另类国产| 久久久久国产一区二区| 国内成+人亚洲+欧美+综合在线| 久久av一区| 欧美成人dvd在线视频| 亚洲人成绝费网站色www| 亚洲天堂视频在线观看| 国产精品久久久久免费a∨| 翔田千里一区二区| 久久婷婷国产综合精品青草| 在线成人免费观看| 亚洲精品在线一区二区| 欧美日韩午夜在线| 亚洲视频香蕉人妖| 久久精品99无色码中文字幕| 狠狠色丁香久久婷婷综合丁香| 亚洲精品国产欧美| 欧美日韩高清在线一区| 亚洲午夜在线视频| 久久久av网站| 亚洲国产精品久久精品怡红院| 正在播放亚洲| 国产欧美一区视频| 亚洲激情综合| 欧美色区777第一页| 亚洲欧美日韩国产成人| 麻豆国产精品va在线观看不卡| 91久久精品www人人做人人爽| 亚洲一区二区不卡免费| 国产日韩欧美亚洲| 亚洲国产美国国产综合一区二区 | 国产精品久久久久av| 欧美在线亚洲在线| 蜜桃视频一区| 亚洲视频在线免费观看| 久久久久久久尹人综合网亚洲 | 亚洲色图在线视频| 久久久国际精品| 亚洲另类在线视频| 久久国产日韩欧美| 亚洲国产日日夜夜| 香蕉尹人综合在线观看| 一区二区三区在线观看国产| 国产精品99久久久久久久vr| 国产亚洲美州欧州综合国| 艳女tv在线观看国产一区| 国产伦一区二区三区色一情| 亚洲精品孕妇| 国产日韩欧美视频| 一区二区福利| 国产资源精品在线观看| 国产精品99久久不卡二区| 海角社区69精品视频| 亚洲欧美成人| 亚洲国产日韩欧美在线图片| 欧美亚洲一区二区在线观看| 亚洲激情欧美| 久久精品国产精品亚洲精品| 99re6热只有精品免费观看 | 欧美国产日韩一区二区在线观看 | 欧美午夜精品一区| 亚洲国产一区二区三区青草影视 | 亚洲高清在线播放| 久久国产精品99国产| 99国内精品久久久久久久软件| 久久久久久噜噜噜久久久精品| 一区二区三区四区五区在线| 猛干欧美女孩| 性欧美长视频| 国产精品久久久久久妇女6080|