<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > 兩種MCU間的串行通信協(xié)議設計

          兩種MCU間的串行通信協(xié)議設計

          作者: 時間:2011-04-12 來源:網絡 收藏

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

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

          本文引用地址:http://www.ex-cimer.com/article/156421.htm

          a.jpg


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

          2 具體實現(xiàn)
          2.1 硬件設置
          具體的器件不同,UART的工作方式也有所區(qū)別,主要表現(xiàn)在波特率、停止位、數(shù)據(jù)字長度等參數(shù)上。當兩個器件用UART連接時,所有參數(shù)必須完全一致,否則通信很容易出錯。在此,要特別注意波特率的設置:當線路質量好的時候,波特率可以設置得高點,以獲得較高的傳輸速率;線路質量差的時候,就要減小波特率,以降低誤碼率。
          本設計中,STM32與MST776都整合了UART接口,只需配置少量電阻;同時,線纜長度不超過20 cm,使用環(huán)境的電磁干擾小,波特率可以設置為38 400bps,甚至更高。另外,考慮到C51的處理速度較低,因此波特率不應設置得太高,避免造成C51側數(shù)據(jù)溢出,進而造成死機。
          本設計只需使用兩根數(shù)據(jù)線來實現(xiàn)兩個MCU之間的互連,把STM32上選定的UART接口的TX與對端的UART接口的RX相連,把RX與對端的UART接口的TX相連。


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();