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