基于Lab Windows/CVI的PC與 DSP的串行通信
0 引言
隨著數(shù)字信號處理理論及微電子技術(shù)的高速發(fā)展,數(shù)字信號處理器(DSP)已廣泛應(yīng)用于各個控制領(lǐng)域。而在控制系統(tǒng)中,通常會利用PC機與DSP之間的通信來對系統(tǒng)各個狀態(tài)/參數(shù)進行監(jiān)控。這種方法既利用了DSP功耗低、價格相對便宜、功能強大、抗干擾能力強、適宜于分布現(xiàn)場等優(yōu)點,同時又結(jié)合了PC機的軟硬件資源豐富、管理功能強大、人機界面友好、操控平臺穩(wěn)定可靠、數(shù)據(jù)通信方便快捷等系統(tǒng)功能優(yōu)勢。為此,本文擬通過使用比較廣泛的RS-232-C接口標準來研究PC與TMS320F2812 DSP之間的異步串行通信。
1 硬件設(shè)計
這里采用最簡單的三線連接方法,即PC機與DSP的發(fā)送、接收端彼此交叉連接,地線對應(yīng)連接的方法。另外,由于DSP的串行通信接口SCI的兩個外部引腳SCITXD和SCIRXD的信號為TTL電平,與RS-232-C標準邏輯電平不一致,因此,要進行信號電平轉(zhuǎn)換后才能連接到PC機的串口接頭DB9,圖1所示是其硬件連接電路,其中電平轉(zhuǎn)換選用MAX3232芯片和若干電容來實現(xiàn),使用時只用其中的一對收/發(fā)單元。
2 軟件設(shè)計
2.1 通信協(xié)議
本設(shè)計將通信的幀格式設(shè)置為1個起始位,8個數(shù)據(jù)位,無奇偶校驗位,1個停止位。圖2所示為其數(shù)據(jù)幀格式,其傳輸波特率為9600 bps,采用全雙工通信方法。
PC機發(fā)送數(shù)據(jù)包的格式是:包頭+功能碼+參數(shù)碼+數(shù)據(jù)內(nèi)容+校驗和,本設(shè)計分別設(shè)置它們占1、2、2、4、4個字節(jié)。其中包頭是一個數(shù)據(jù)包開始的標志,這里設(shè)置為字符’~’;功能碼表示本次通信要完成的操作,其中”01”表示向DSP發(fā)送參數(shù),”02”表示讓DSP回傳數(shù)據(jù);參數(shù)碼表示通信傳送的數(shù)據(jù)類別,”01”表示要傳送P參數(shù),”02”表示要傳送I參數(shù),”03”表示要傳送D參數(shù)。假如通過PC機來設(shè)置DSP中數(shù)字PID控制程序的參數(shù)P為15.20,可以設(shè)定數(shù)據(jù)的量綱為1:100,那么就應(yīng)當發(fā)送15.20×100=1520=05F0H,即依次發(fā)送字符’0’=30H、’5’=35H、’F’=46H、’0’=30H;且在前面發(fā)送的字符串為”~010105F0”。校驗和的計算是把從功能碼到數(shù)據(jù)內(nèi)容己經(jīng)轉(zhuǎn)換為ASCII碼的全部字節(jié)連續(xù)累加,其值為7EH+30H+31H+30H+31H+30H+35H+46H+30H=021BH,所以,PC向DSP發(fā)送完整的數(shù)據(jù)包為字符串”~010105F0021B”,其格式如圖3所示。
DSP上傳電流、電壓、頻率等實時數(shù)據(jù)的數(shù)據(jù)包格式與圖3類似,但它可以不使用功能碼或參數(shù)碼。如頻率數(shù)據(jù)包的包頭采用字符’*’,電流數(shù)據(jù)包的包頭采用字符’#’,以示區(qū)別即可。
評論