《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > MSP430多處理器之間的通信方式及協議
MSP430多處理器之間的通信方式及協議
單片機及嵌入式系統應用
崔鳳新 廖明燕等
摘要: 在MSP430的應用中,采用串行總線中的串行通信方式組成多處理器系統是比較理想的選擇。 ...
Abstract:
Key words :

單片機" title="單片機">單片機系統中,多處理器是指多個相同類型或者不同類型的單片機協作處理同一個系統的不同工作。它們之間必須具備一定的數據交換和協作處理能力,共同完成一個系統化的工作。不同處理器之間可以采用數據交換方式、并行總線方式、串行總線方式進行通信。其中,數據交換方式又可以稱為共享內存" title="內存">內存交換方式;串行總線方式又可以分為單總線方式、集成電路之間的通信方式和UART方式。

1 MSP430多處理器
  MSP430是一款超低功耗" title="低功耗">低功耗的混合信號控制器,具有1 6位RISC結構,有著豐富的片內外設,主要包括有看門狗、定時器、比較器、硬件乘法器、液晶驅動器、ADC、I/0端口、串口(USART)等等,還集成有64 KB的Flas’E-ROM和2 KB的RAM。其功能強大,應用場合廣泛。但是在大型復雜的場合或者實時性要求較高的場合,使用一個處理器處理所有的業務,總是顯得有些不足。引入多個MsP430處理器協作工作的模式,可以提高系統的實時性、可靠性和適用性。

  在多數場合,MSP430無須為每個處理器擴展FlashROM,也無須擴展RAM,采用共享內存的數據交換方式組成多處理器系統并非最佳選擇。此外,MSP430包括有兩個串口(USART),在MSP430的應用中,可以把兩組串行端口中的一個供外部通信使用,另一個串行端口供內部通信使用。采用串行總線中的串行通信方式組成多處理器系統是比較理想的選擇。

2 技術要點

2.1 MSP430多處理器組成


  MSP430具有兩個串行端口(USART),可以使用其中的一個作為多處理器之間的通信端口。由于串行通信的架構限制,MSP430采用UART串行通信模式組成的多處理器系統,必須建立一個主處理器和若干從處理器。主處理器的TXD端與所有從處理器的RXD端相連,所有從處理器的TXD端與主處理器的RXD端相連。MSP43O多處理器拓撲結構如圖1所示。


  在這個結構中,主處理器通過TXD端發送出指令報文,傳輸到從處理器的RXD接收端;從處理器對指令報文進行解包并且對這個指令報文進行響應。從處理器的響應報文通過TXD發送到主處理器的RXD接收端,主處理器獲取響應報文確認指令是否被正確執行。從這個結構上看,主處理器可以與任何從處理器進行通信,任何從處理器也可以和主處理器進行通信,但是從處理器與從處理器之間卻不可以進行直接的通信。

2.2 多處理器系統串行通信協議


  在多處理器系統的串行通信方式中,可以有若干種通信協議進行選擇,如ModBus、Brooks、工業總線協議等等。在此,可以選擇業界通用的MocBus通信協議作為處理器與處理器之間的通信協議。

2.3 ModBus通信協議


  Modbus協議支持傳統的RS232、RS422、RS485和以太網設備。ModBus協議包括ASCII、RTU、TCP等報文格式,并沒有規定物理層。此協議定義了控制器能夠認識和使用的消息結構,而不管它們是經過何種網絡進行通信的。ModBtls的ASCII、RTU協議規定了消息和數據的結構、命令和就答的方式,數據通信采用Master/Slave方式。Master端發出數據請求消息,Slave端接收到正確消息后就可以發送數據到Mastez端,以響應請求;Master端也可以直接發消息修改Slave端的數據,實現雙向讀寫。

2.4 ModBus在多處理器系統中的報文格式


  由于是一個主服務器對應多個從處理器的系統,處理器與處理器之間的報文傳輸必須明確標注目標地址和源地址,以免不相干的處理器之間進行誤導操作。除此以外,為了提高主處理器的處理能力,同時避免不同處理器存在報文相應速度差,以及不同指令任務之間存在處理量差異的問題,必須采用異步通信模式進行通信。要滿足異步通信模式,必須在報文中對每次的通信操作加注請求報文的16位標示(可以稱之為句柄),同時對這些句柄進行記錄。

2.4.1 數據讀取請求報文格式


  源地址:主處理器地址。
  目標地址:指令目的地地址(從處理器)。
  句柄:指令請求標示號。
  功能代碼:操作指令代碼。
  起始地址:讀取從處理器數據寄存器的起始地址。
  字節數:操作所涉及的寄存器字。
  校驗碼:CRC校驗碼或者LRC校驗碼。

2.4.2 數據讀取應答報文格式


  源地址:從處理器地址。
  目標地址:主處理器地址。
  句柄:指令請求標示號。
  功能代碼:操作指令代碼。
  數據字節數:操作所涉及的寄存器字節數。
  數據1至數據n:數據。
  校驗碼:CRC校驗碼或者LRC校驗碼。

  其中,應答報文中的目標地址等價于請求報文中的源地址,應答報文中的源地址等價于請求報文中的目標地址。


2.5 校驗碼
  在ModBus中,通用的校驗方式是ASCII協議方式采用LRC校驗方式,RTU協議方式采用CRC校驗方式。

2.5.1 LRC校驗

  LRC校驗比較簡單。它在ASCII協議中使用,檢測了消息域中除開始的冒號及結束的回車換行號外的內容。它僅僅是把每一個需要傳輸的數據按字節疊加后取反加1即可。下面是它的C代碼:

BYTE GetCheckCode(const char*pSendBuf,Int nEnd)
{ //獲得校驗碼
BYTE byLrc=O。
char pBuf[4];
int nData=0
for(i=1;i{//每兩個需要發送的ASCII碼轉化為一個十六進制數
pBuf[O]=pSendBuf[i];
pBu=pSendBuf;
pBuf[2]=、O’;
sscanf(pBuf,”%x”,& nData);
bvLrc+=nData;
byhc=~byLrc;
byLrc++;
return byLrc;
}

2.5.2 CRC校驗


  CRC是先調入一值是全“1”的16位寄存器,然后調用一過程將消息中連續的8位字節和當前寄存器中的值進行處理。僅每個字符中的8位數據對CRC有效,起始位和停止位以及奇偶校驗位均無效。

  CRC產生過程中,每個8位字符都單獨和寄存器內容相或(OR),結果向最低有效位方向移動,最高有效位以0填充。LSB被提取出來檢測。如果LSB為1,寄存器單獨和預置的值“或”一下;如果LSB為O,則不進行。整個過程要重復8次。在最后一位(第8位)完成后,下一個8位字節又單獨和寄存器的當前值相“或”。最終寄存器中的值,是消息中所有字節都執行之后的CRC值。

  CRC添加到消息中時,低字節先加入,然后高字節加入。下面是它的C代碼:
WORD GetCheckCode(const char*pSendBuf,int nEnd)
{ //獲得校驗碼
WORD wCrc=WORD(0xFFFF);
for(int i=O;iwCrc^=WoRD(BYTE(pSendBuf[i]);
for(Intj=O;j<8;J++){
if(wCrc&1){
wCrc>>=l;
wCrc^一OxA00l:
}
else{
wCrc>>=1;
retIlrIl wCrc:

3 報文示范
  ModBus包含ASCII和RTU兩種報文格式。RTU報文較短,但是沒有邊界定義;ASCII報文較長,但是邊界明了。在多處理器通信之中,由于通信距離很短,干擾較小,因此可以選擇較高的通信速率。通信速率提高了,報文長度較長對通信的影響不大,因此可以選擇ASCII報文格式進行通信。

  ModBus的ASCII讀取請求報文格式如下:


  ModBus 的 ASCII讀取請求報文格式如下:


  假設主機地址01,要對從機地址02進行讀取247和248地址的兩個寄存器值的通信,并且本次通信為第1次通信,設定流水號為000l。


結 語
  多處理器協作工作模式和通信協議,已經成功應于CNG加氣機,使系統信息交換更加迅速、可靠,整個系統的性能得到了提高。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
怡红院精品视频| 香港久久久电影| 国产伦精品一区二区三区照片91| 欧美日韩成人精品| 免费一级欧美在线大片| 久久只有精品| 久久只精品国产| 久久伊人免费视频| 久久久久9999亚洲精品| 欧美一区在线直播| 欧美亚洲在线播放| 久久狠狠亚洲综合| 久久精品青青大伊人av| 久久久久成人网| 久久久久久久一区二区三区| 久久精品国产精品| 久久国产婷婷国产香蕉| 久久久91精品| 久久综合九色九九| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久久久久久久久久久久9999| 久久久九九九九| 老鸭窝毛片一区二区三区| 久久伊伊香蕉| 欧美国产亚洲精品久久久8v| 欧美激情小视频| 欧美日韩亚洲91| 国产精品麻豆成人av电影艾秋| 国产精品久久久久久久久久久久久 | 亚洲美女精品久久| 一本久道综合久久精品| 中文一区在线| 亚洲综合色激情五月| 久久大综合网| 亚洲免费播放| 亚洲综合精品自拍| 久久国产手机看片| 男人的天堂亚洲在线| 欧美日本一区二区视频在线观看| 欧美体内she精视频| 国产欧美精品一区aⅴ影院| 狠狠色丁香久久婷婷综合_中| 亚洲国产成人久久综合一区| 夜夜嗨av一区二区三区网页| 亚洲自拍偷拍福利| 久久精品国语| 99re6这里只有精品| 亚洲欧美日本在线| 久久久综合网站| 欧美连裤袜在线视频| 欧美性猛交一区二区三区精品| 国产欧美日韩综合精品二区| 在线观看一区二区精品视频| 亚洲最快最全在线视频| 欧美在线视频免费观看| 99视频精品免费观看| 欧美一区二区私人影院日本 | 日韩一级不卡| 性一交一乱一区二区洋洋av| 玖玖玖国产精品| 国产精品成人一区二区| 含羞草久久爱69一区| 日韩视频在线观看免费| 欧美亚洲一级片| 一本不卡影院| 久久免费精品视频| 欧美私人网站| 亚洲大胆av| 午夜精品久久久久久久99热浪潮| 亚洲精品免费在线| 欧美一区免费| 欧美日本国产一区| 国语精品一区| 亚洲小说欧美另类婷婷| 亚洲精品视频在线播放| 欧美一区深夜视频| 欧美日韩一区二区在线播放| 国产一区二区三区在线观看免费| 亚洲精品自在在线观看| 亚洲高清123| 午夜欧美不卡精品aaaaa| 欧美黄色网络| 一区二区三区在线视频观看 | 亚洲一区视频| 99国产精品99久久久久久| 久久婷婷国产综合尤物精品| 国产精品国产三级国产普通话蜜臀| **欧美日韩vr在线| 欧美一级淫片播放口| 亚洲视频福利| 欧美激情乱人伦| 精品999在线播放| 欧美一级一区| 午夜精品视频在线观看| 欧美日韩国产精品自在自线| 亚洲高清一区二区三区| 久久精品亚洲一区| 久久成人免费视频| 国产伦精品一区二区三区免费| 一区二区三区国产盗摄| 99爱精品视频| 欧美激情综合网| 亚洲国产精品久久| 亚洲国产美女| 久久一二三区| 红桃视频国产精品| 久久国产精品久久国产精品| 久久精品99国产精品| 国产伦精品一区二区三区高清版| 中国女人久久久| 亚洲一区二区三区四区五区黄| 欧美日韩国产大片| 亚洲毛片播放| 中文一区字幕| 欧美日韩爆操| 亚洲精品你懂的| 99riav国产精品| 欧美日韩国产综合久久| 亚洲全黄一级网站| 99视频有精品| 欧美日韩日韩| 一区二区三区视频观看| 亚洲一二三级电影| 欧美性大战xxxxx久久久| 一区二区国产精品| 亚洲欧美日韩精品久久久久| 欧美视频第二页| 亚洲视频在线免费观看| 亚洲欧美日韩一区二区| 国产欧美日韩免费| 欧美在线日韩精品| 另类激情亚洲| 亚洲国产综合在线| 一区二区欧美国产| 国产精品久久久久一区二区| 亚洲欧美日韩国产另类专区| 久久久久久久尹人综合网亚洲| 国语自产精品视频在线看一大j8| 亚洲国产高清自拍| 欧美国产亚洲另类动漫| 亚洲精品一区二区三区99| 制服丝袜亚洲播放| 国产精品欧美日韩一区二区| 亚洲永久免费| 久久综合免费视频影院| 亚洲国产专区校园欧美| 亚洲视频一区在线观看| 国产精品热久久久久夜色精品三区| 午夜精品久久久久久久蜜桃app| 久久久久久自在自线| 亚洲国产视频a| 亚洲伊人伊色伊影伊综合网| 国产精品一区二区三区四区| 亚洲电影第1页| 欧美精品乱人伦久久久久久| 亚洲无人区一区| 久久婷婷蜜乳一本欲蜜臀| 亚洲国产美女久久久久| 亚洲综合色网站| 国产综合色在线| av不卡在线| 国产日产亚洲精品系列| 亚洲剧情一区二区| 国产精品五月天| 亚洲成人资源网| 欧美视频一区二区三区在线观看| 亚洲欧美日韩一区二区三区在线| 免费黄网站欧美| 宅男噜噜噜66一区二区| 久久久久久久久久看片| 亚洲美女精品成人在线视频| 久久精品动漫| 日韩亚洲欧美一区二区三区| 久久九九国产精品怡红院| 亚洲精品老司机| 久久视频在线视频| aⅴ色国产欧美| 久久亚洲综合色| 亚洲一区二区三区国产| 欧美成人小视频| 欧美一级网站| 欧美丝袜一区二区| 亚洲激情不卡| 国产麻豆精品theporn| 99国内精品久久| 国内精品视频久久| 亚洲欧美日韩国产另类专区| 亚洲成人在线网站| 久久福利精品| 一二三区精品| 欧美激情精品久久久久久免费印度 | 日韩视频第一页| 国内久久婷婷综合| 亚洲一区三区电影在线观看| 亚洲高清三级视频| 久久精品中文字幕一区| 宅男精品视频| 欧美日本在线看| 亚洲人成网站影音先锋播放| 国产欧美日韩激情|