基于雙DSP的并聯(lián)控制系統中串行通信的研究
上位機采用Visual Basic6.0(以下簡(jiǎn)稱(chēng)VB)語(yǔ)言編程實(shí)現,利用VB 中提供的MSComm 控件可以實(shí)現PC 機與下位機的通信。利用MSComm 實(shí)現通信有兩種方法:一是事件驅動(dòng) 方法,也就是OnComm 事件。當有數據到達端口或端口狀態(tài)發(fā)生改變或有通信錯誤產(chǎn)生時(shí), 都將發(fā)生OnComm 事件。另一種就是查詢(xún)方式。查詢(xún)方式是通過(guò)周期性讀取緩沖區的信號來(lái)發(fā)現是否有事件發(fā)生并進(jìn)行處理的方法。本設計中,發(fā)送采用查詢(xún)方式,接受采用事件驅 動(dòng)方法。MSComm 控件初始化程序如下:
MSComm1.CommPort = 1 '端口號'
MSComm1.Settings = 38400,n,8,1
'波特率38400bit/s,8 位數據位,無(wú)奇偶校驗,1 位停止位'
MSComm1.InputLen = 0
MSComm1.InBufferCount = 0 '清空接收緩沖區'
MSComm1.OutBufferCount = 0 '清空'
MSComm1.RThreshold = 1 '接收緩沖區或發(fā)送緩沖區中可以接收的字符數'
MSComm1.PortOpen = True
應實(shí)際要求,我們要在通信中同時(shí)傳輸數據和控制字符,所以數據傳輸同時(shí)采用ASCⅡ 碼和二進(jìn)制兩種形式。這就需要在每次傳輸前改變MSComm1.InputMode 的屬性。
TMS320F2812(SPI 通信中主處理器)在完成時(shí)鐘和中斷初始化后,對其SCI 寄存器進(jìn) 行設置,使其通信協(xié)議和上位機一致。TMS320F2812 采用查詢(xún)方式給上位機發(fā)送數據,中 斷方式接受上位機的數據。SCI 寄存器設置如下:
SciaRegs.SCICCR.all=0x0007;
/*一個(gè)停止位,禁止奇偶校驗,禁止自測,8 個(gè)字符*/
SciaRegs.SCICTL1.all=0x0003;
/*禁止接受錯誤中斷,復位,禁止休眠,開(kāi)啟發(fā)送使能*/
SciaRegs.SCICTL2.all=0x0002;
/*開(kāi)接受中斷,關(guān)發(fā)送中斷*/
SciaRegs.SCIHBAUD=0x00;
SciaRegs.SCILBAUD=0x79;
/*波特率38400*/
SciaRegs.SCICTL1.all=0x0023;
/*開(kāi)始使能SCIA*/
5 結束語(yǔ)
以上為解決兩個(gè)DSP 之間以及DSP 與PC 機之間的通信的軟硬件設計方案,當上位機 發(fā)送給定信息(位置信息)后,下位機接受到數據并傳輸給SPI 處理器,上位機和下位機界 面如圖6、圖7。
系統的最大特點(diǎn)是根據實(shí)際需要,采用同時(shí)同步和異步兩通信方式。雙系統間的同步串 行通信,保證了雙系統運行的同步性;通過(guò)PC 機和上位機的異步串行通信,實(shí)現把DSP 采集的一系列數據通過(guò)串口發(fā)送至PC 機,解決了DSP 存儲空間有限的問(wèn)題,在PC 上可以很方便地對數據進(jìn)行一些在DSP 上難以實(shí)現的處理,得到一些數據曲線(xiàn)等,效果直觀(guān)便捷。此系統已應用與某一開(kāi)關(guān)磁阻電機電機并聯(lián)控制系統中,運行穩定,通信性能良好。
評論