《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 兩種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亚洲国产精品_日韩亚洲一区二区
午夜电影亚洲| 欧美日本中文字幕| 99精品福利视频| 亚洲国产高清aⅴ视频| 亚洲欧美综合v| 亚洲欧美日本伦理| 亚洲桃色在线一区| 一区二区三区成人精品| 亚洲免费电影在线| 亚洲理论电影网| 日韩视频免费在线| 亚洲免费观看在线视频| 亚洲精品在线视频观看| 亚洲精品欧美极品| 亚洲精品久久久久久下一站| 亚洲国产精品久久久久| 亚洲国产精品ⅴa在线观看| 在线成人激情视频| 亚洲高清av在线| 亚洲三级电影全部在线观看高清| 亚洲乱码国产乱码精品精98午夜 | 久久免费黄色| 久久深夜福利免费观看| 久久人人爽爽爽人久久久| 久久夜色精品| 欧美成人首页| 欧美精品午夜| 欧美午夜不卡视频| 国产美女一区| 国内视频精品| 亚洲欧洲日本专区| 这里只有精品视频在线| 亚洲一区在线直播| 欧美综合二区| 日韩视频精品在线| 亚洲欧美美女| 久久深夜福利免费观看| 欧美激情在线观看| 欧美午夜精品一区| 国产精品中文在线| 在线国产精品一区| 亚洲最新色图| 欧美一级欧美一级在线播放| 亚洲第一页在线| 99re66热这里只有精品3直播| 亚洲永久免费av| 久久久人人人| 欧美日韩中文| 国内精品视频在线观看| 亚洲国产精品一区二区三区| 亚洲天堂偷拍| 亚洲国产欧美另类丝袜| 亚洲少妇中出一区| 久久婷婷麻豆| 欧美日韩免费在线视频| 国产午夜精品美女视频明星a级| 在线观看亚洲| 国产精品99久久久久久久vr| 久久国产高清| 亚洲网站在线播放| 久久久青草青青国产亚洲免观| 欧美精品在线观看一区二区| 国产九区一区在线| 最近中文字幕日韩精品 | 亚洲精品乱码久久久久久蜜桃91| 亚洲欧美日韩一区在线| 亚洲欧洲日韩综合二区| 亚洲欧美综合网| 欧美激情精品久久久久久黑人 | 久久av资源网| 亚洲综合色婷婷| 蜜臀va亚洲va欧美va天堂| 国产精品久久久久久一区二区三区| 激情视频一区| 亚洲少妇自拍| 亚洲精品中文字幕在线| 久久精品国产亚洲一区二区三区| 欧美人在线观看| 激情文学综合丁香| 亚洲在线中文字幕| 99在线热播精品免费| 久久婷婷激情| 国产女优一区| 99xxxx成人网| 亚洲区一区二| 久久伊人亚洲| 国产精品一区二区三区四区| 亚洲精一区二区三区| 亚洲国产精品视频一区| 欧美与欧洲交xxxx免费观看| 欧美日韩午夜剧场| 亚洲国产高清高潮精品美女| 久久精品成人| 欧美在线啊v一区| 国产精品99一区二区| 亚洲人成绝费网站色www| 久久精品免费| 欧美在线free| 国产精品视频yy9099| 中文精品一区二区三区| 99热在线精品观看| 欧美 日韩 国产一区二区在线视频 | 久久精品噜噜噜成人av农村| 国产精品久久久久久久久久三级| 亚洲国产综合在线看不卡| 欧美一区二区在线看| 欧美在线不卡视频| 国产精品一区二区三区乱码| 亚洲网站视频福利| 亚洲图片激情小说| 欧美日韩综合在线| 亚洲精一区二区三区| 夜夜嗨av一区二区三区中文字幕| 欧美顶级艳妇交换群宴| …久久精品99久久香蕉国产| 亚洲激情偷拍| 欧美成人精品高清在线播放| 在线欧美福利| 亚洲乱码日产精品bd| 欧美激情精品久久久久久黑人| 亚洲黄色免费电影| 亚洲美女在线一区| 欧美日韩美女在线观看| 亚洲久久在线| 一区二区三区回区在观看免费视频| 欧美日韩国产精品专区| 亚洲免费成人av电影| 亚洲午夜精品| 国产精品一区二区女厕厕| 亚洲欧美综合另类中字| 久久久久国产精品麻豆ai换脸| 狠色狠色综合久久| 亚洲国产美女| 欧美精品色综合| 亚洲午夜av在线| 久久国产视频网站| 极品少妇一区二区三区| 亚洲人成人99网站| 欧美人与禽猛交乱配| 亚洲视频自拍偷拍| 久久精品视频免费播放| 曰韩精品一区二区| 99精品99久久久久久宅男| 欧美三级电影一区| 国产精品99久久久久久久vr| 欧美有码在线观看视频| 韩国福利一区| 亚洲精品久久久久久下一站| 欧美日韩美女在线| 亚洲欧美国产一区二区三区| 久久精品亚洲一区| 亚洲福利视频在线| 亚洲私人影院在线观看| 国产精品永久免费观看| 久久国产精品亚洲va麻豆| 蘑菇福利视频一区播放| 亚洲精品国产精品国自产在线| 亚洲一区自拍| 国产一区二区三区免费在线观看| 91久久精品日日躁夜夜躁欧美| 欧美日韩999| 亚洲男同1069视频| 蜜桃伊人久久| 尤物99国产成人精品视频| 99国产麻豆精品| 国产日产欧美a一级在线| 亚洲欧洲精品一区二区三区波多野1战4 | 欧美日韩性生活视频| 欧美一区二区三区四区在线观看地址| 欧美成年人视频| 亚洲午夜女主播在线直播| 久久亚洲精品欧美| 99精品久久免费看蜜臀剧情介绍| 久久av一区| 亚洲精品永久免费| 欧美在线电影| 日韩亚洲欧美一区二区三区| 久久久精品五月天| 亚洲美女在线视频| 久久日韩粉嫩一区二区三区| 一本大道久久a久久精二百| 久久久夜精品| 亚洲视频免费观看| 欧美电影免费观看高清| 亚洲欧美日韩一区二区在线 | 亚洲午夜精品久久久久久app| 免费亚洲视频| 亚洲欧美日韩区| 欧美欧美午夜aⅴ在线观看| 欧美影院久久久| 国产精品分类| 亚洲免费激情| 黄色精品一区二区| 亚洲欧美国产不卡| 亚洲人成毛片在线播放| 久久青草欧美一区二区三区| 亚洲一区免费看| 欧美日韩免费网站| 亚洲精品欧美在线| 国产一区二区三区精品欧美日韩一区二区三区 |