TMS320F24x與PC機串行通信接口設計及應用
來源: | 作者:pro75e66c | 發布時間: 2014-06-03 | 3452 次瀏覽 | 分享到:


  通信接口的軟件設計

  ● 通信協議的設定
  uart通信對噪音比較敏感,特別是脈沖邊沿抖動。所以,為了確保uart能夠正確工作,必須能夠檢測它的開始和結束字節。也就是說,需要一定的數據包格式,即使是使用一個uart端口,在這個數據包中的每一個字節也都要編成uart格式。因此在異步串行通信中,收、發雙方必須事先規定字符格式、采用的波特率,以及時鐘頻率和波特率的關系。

  這些規定是通過初始化設置與串行通信有關的寄存器來實現的。本通信系統中,規定字符格式為:每一幀的數據占10位,一位奇校驗位,8位數據位,1位停止位。中間的8位數據位即為有效的通信傳輸字節。雙方的波特率設置為19200bps。同時,為了增強通信的可靠性,減少通信的誤碼率,規定了通信雙方收發數據包的協議如表1所示。

  特征碼選用0xff、0xaa、0x55這3字節為發送數據包的前導數據,這是因為這幾字節在傳輸噪聲中同時出現的幾率很小,特征碼起到向接收方表明有數據發送過來的作用,通知接收方可以開始接收有效數據;字節數是數據包中除了字節數這一項之外,其他所有項字節的長度;有效數據字符串是通信發送方要傳送的有效數據;校驗和是數據包中除了校驗和這一項之外所有項字節的無進位累加和,用于校驗通信是否正確。

  同時,在通信過程中約定了雙方的軟件握手方法。為了不使通信過于復雜,提高通信速度,可以直接將握手信號0xff嵌入到數據包中。軟件握手協議規定如下:pc定時發送符合通信協議規定的數據包,dsp接收到的第四字節若為握手信號0xff,則將校驗正確后的有效數據存儲,并從中分解有效字節信息,然后回送相同格式的數據包。若pc接收到的數據包的第四字節不是0xff,則摒棄該數據包。dsp與pc的通信流程圖如圖2所示。

  ● dsp端下位機sci通信程序的編制
  在dsp端的軟件程序設計中,通過中斷方式接收pc發送過來的數據包,握手并校驗確認后接收有效數據,再將pc所需的數據打包回送。基于dsp功能模塊化的特點,其串行通信匯編程序的編制主要分三個步驟:
  (1)初始化設置時鐘源模塊,得到所需的cpuclk和sysclk(因為計算波特率時與之有關);
  (2)設置sci模塊,初始化各sci控制寄存器;
  (3)編寫串行通信中斷服務子程序,即可完成dsp與pc之間的串行通信。

  在串行通信中斷服務子程序的編制過程中,參考圖2所示的dsp與pc串行通信流程圖,即可完成正常的數據通信任務。如果需要利用軟件來實現dsp與pc的雙向復位,則可將圖1中的跳線端子jump1的1、2 腳短接,串口的dtr引腳通過上拉電阻接通電源,將jump4的2、3腳短接,max232的第二路收/發單元的發送引腳接通dsp的復位端 hostrest。系統上電之后,dtr呈現高電平狀態,若系統運行過程中出現dsp控制器的程序出錯、監控對象異常時,可以通過在上位機端執行特定的復位操作,在程序中使pc串口的dtr引腳狀態產生由低到高的電平變化,通過max232芯片的第二路通信收/發單元,將輸出電平傳遞給hostrest,最后提供給dsp的復位引腳rs,使得復位引腳rs上同樣出現低到高的電平變化,從而使dsp復位,下位機dsp控制程序得以重新運行。同樣的,當dsp 端自行檢測到通信數據不正常時,可以根據檢測結果,自行發送復位信號。通過指令clr xf,置位xf引腳為低電平,經由max232芯片的第二路通信收/發單元,串口的cts引腳接收到低電平信號,pc端程序若查詢到cts電平出現由高到低的電平變化時(觸發comevcts事件),自動改變程序運行流程,使得pc端的通信程序重新開始,以期恢復通信的正常。當然,也可以通過在dsp端改變xf引腳電平狀態,作為給pc發送的特定命令信號,相當于在dsp與pc之間預留了一個相互聯系的通信接口。
香蕉视频.污app下载_香蕉视频污的_香蕉视频下载污