基于Lab Windows/CVI的PC與 DSP的串行通信
2.3 下位機DSP程序
DSP的軟件開發可利用集成開發環境CCS3.1(Code Composer Studio),并采用C語言進行編程。利用DSP的SCI模塊實現串行通信的主程序流程圖如圖4所示。DSP的串行通信程序設計可采用查詢法或中斷法來進行數據的收發,這里采用中斷方式接收數據,而用查詢方式發送數據。DSP收到PC機發送來的數據時,便轉入相應的中斷子程序,其中斷服務子程序流程如圖5所示。其串口SCI初始化配置如下:
void SCI_Init(void)
{
SciaRegs.SCICCR.all=0x0007;//字符長度8位
SciaRegs.SCICTL1.all=0x0003;//使能發送和接收
SciaRegs.SCICTL2.all=0x0002; //使能接收中斷,禁止發送中斷
SciaRegs.SCIHBAUD=0x00;//置波特率高8位
SciaRegs.SCIHBAUD=0xF3;//置波特率低8位
SciaRegs.SCICTL1.all=0x23;//使SCI退出復位
}
DSP收到字符串”~010105F0019D”之后,首先進行和校驗。如果正確,則根據功能碼和參數碼判斷PC機發送的是否是修改參數P的命令。然后提取數據”05F0'’,將其轉換為十進制數1520,再除以100即得到要設置的P值15.20;如果和校驗出錯,則要求主機重發。若PC機發送的是上傳數據的命令,則將發送標志變量send_flag置1,這樣,在主循環中,經過判斷后,便可向PC機發送數據。
3 結束語
本文利用LabWindows/CVI開發平臺編寫了上位機PC程序,同時利用CCS3.1開發環境編寫下位機DSP程序,然后通過RS232總線進行串行通信。利用這種方法設計的PC機與DSP的串行通信系統具有硬件結構簡單、成本低、實現容易等特點,并具有良好的可移植性和可擴展性,能夠很好地滿足PC與DSP的通信需求。
評論