新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Lab Windows/CVI的PC與 DSP的串行通信

基于Lab Windows/CVI的PC與 DSP的串行通信

作者: 時(shí)間:2013-11-30 來(lái)源:網(wǎng)絡(luò) 收藏
  0 引言

  隨著理論及微電子技術(shù)的高速發(fā)展,器(DSP)已廣泛應(yīng)用于各個(gè)控制領(lǐng)域。而在控制系統(tǒng)中,通常會(huì)利用PC機(jī)與DSP之間的通信來(lái)對(duì)系統(tǒng)各個(gè)狀態(tài)/參數(shù)進(jìn)行監(jiān)控。這種方法既利用了DSP功耗低、價(jià)格相對(duì)便宜、功能強(qiáng)大、抗干擾能力強(qiáng)、適宜于分布現(xiàn)場(chǎng)等優(yōu)點(diǎn),同時(shí)又結(jié)合了PC機(jī)的軟硬件資源豐富、管理功能強(qiáng)大、人機(jī)界面友好、操控平臺(tái)穩(wěn)定可靠、數(shù)據(jù)通信方便快捷等系統(tǒng)功能優(yōu)勢(shì)。為此,本文擬通過(guò)使用比較廣泛的RS-232-C接口標(biāo)準(zhǔn)來(lái)研究PC與TMS320F2812 DSP之間的異步。

  1 硬件設(shè)計(jì)

  這里采用最簡(jiǎn)單的三線連接方法,即PC機(jī)與DSP的發(fā)送、接收端彼此交叉連接,地線對(duì)應(yīng)連接的方法。另外,由于DSP的接口SCI的兩個(gè)外部引腳SCITXD和SCIRXD的信號(hào)為TTL電平,與RS-232-C標(biāo)準(zhǔn)邏輯電平不一致,因此,要進(jìn)行信號(hào)電平轉(zhuǎn)換后才能連接到PC機(jī)的串口接頭DB9,圖1所示是其硬件連接電路,其中電平轉(zhuǎn)換選用MAX3232芯片和若干電容來(lái)實(shí)現(xiàn),使用時(shí)只用其中的一對(duì)收/發(fā)單元。


  2 軟件設(shè)計(jì)

  2.1 通信協(xié)議

  本設(shè)計(jì)將通信的幀格式設(shè)置為1個(gè)起始位,8個(gè)數(shù)據(jù)位,無(wú)奇偶校驗(yàn)位,1個(gè)停止位。圖2所示為其數(shù)據(jù)幀格式,其傳輸波特率為9600 bps,采用全雙工通信方法。


  PC機(jī)發(fā)送數(shù)據(jù)包的格式是:包頭+功能碼+參數(shù)碼+數(shù)據(jù)內(nèi)容+校驗(yàn)和,本設(shè)計(jì)分別設(shè)置它們占1、2、2、4、4個(gè)字節(jié)。其中包頭是一個(gè)數(shù)據(jù)包開始的標(biāo)志,這里設(shè)置為字符’~’;功能碼表示本次通信要完成的操作,其中”01”表示向DSP發(fā)送參數(shù),”02”表示讓DSP回傳數(shù)據(jù);參數(shù)碼表示通信傳送的數(shù)據(jù)類別,”01”表示要傳送P參數(shù),”02”表示要傳送I參數(shù),”03”表示要傳送D參數(shù)。假如通過(guò)PC機(jī)來(lái)設(shè)置DSP中數(shù)字PID控制程序的參數(shù)P為15.20,可以設(shè)定數(shù)據(jù)的量綱為1:100,那么就應(yīng)當(dāng)發(fā)送15.20×100=1520=05F0H,即依次發(fā)送字符’0’=30H、’5’=35H、’F’=46H、’0’=30H;且在前面發(fā)送的字符串為”~010105F0”。校驗(yàn)和的計(jì)算是把從功能碼到數(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í)時(shí)數(shù)據(jù)的數(shù)據(jù)包格式與圖3類似,但它可以不使用功能碼或參數(shù)碼。如頻率數(shù)據(jù)包的包頭采用字符’*’,電流數(shù)據(jù)包的包頭采用字符’#’,以示區(qū)別即可。

  2.2 上位機(jī)PC端程序

  PC機(jī)主要完成三部分工作:一是對(duì)從機(jī)進(jìn)行控制(比如修改參數(shù)),二是對(duì)從機(jī)采集的數(shù)據(jù)進(jìn)行處理和數(shù)值計(jì)算,三是向用戶提供友好、美觀的儀器界面。以上功能均可依靠軟件實(shí)現(xiàn)。上位機(jī)軟件既可以使用Visual C++、VisualBasic等通用的開發(fā)工具,也可以使用LabWin-dows/CVI、LabView等專用于計(jì)算機(jī)測(cè)控領(lǐng)域的虛擬儀器軟件開發(fā)平臺(tái)。LabWindows/CVI是NI公司開發(fā)的32位、以ANSI C為核心的交互式虛擬儀器開發(fā)環(huán)境,它將功能強(qiáng)大的C語(yǔ)言與測(cè)試技術(shù)相結(jié)合,具有靈活的交互式編程方法和豐富的庫(kù)函數(shù),可為開發(fā)人員建立監(jiān)測(cè)、自動(dòng)測(cè)試、數(shù)據(jù)采集、過(guò)程監(jiān)控等系統(tǒng)提供理想的軟件開發(fā)環(huán)境,是實(shí)現(xiàn)虛擬儀器及網(wǎng)絡(luò)化儀器的快速途徑。由于其簡(jiǎn)單易學(xué),故可大大縮短開發(fā)周期。LabWindows/CVI具有專門用于RS-232的函數(shù)庫(kù),主要包括:串行口打開/關(guān)閉函數(shù)(OpenCom/OpenComConfig和CloseCom)、串行口輸入/輸出函數(shù)(ComRd、ComRdByte、ComWrt、ComWrtByte)、串行口控制函數(shù)(FlushInQ、FlushOutQ)、串行口狀態(tài)查詢函數(shù)(GetInQLen、GetOutQLen)、串行口事件處理函數(shù)(InstallCom-Callback)等5大類。以下是程序部分代碼:

  主函數(shù):


  PC機(jī)發(fā)送程序:





  PC機(jī)要能向DSP發(fā)送控制命令,比如開機(jī),關(guān)機(jī),修改參數(shù)等,下面以修改PID控制參數(shù)P為例。

pid控制相關(guān)文章:pid控制原理


c++相關(guān)文章:c++教程


通信相關(guān)文章:通信原理


pid控制器相關(guān)文章:pid控制器原理



上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉