|
|
| <!--插入廣告JS代碼--> |
摘 要 介紹了一種DSP與PC之間的串行通信硬件解決方案,并在Visual C++6.0中利用MSComm通信控件實現了PC的通信程序設計。 關鍵詞 DSP串行通信Visual C++6.0
在工業控制領域,常常需要由1臺主機去控制從機或智能儀器。串行通信作為一種靈活、方便、可靠的通信方式,仍不失為上位機與下位機通信的一種有效的通信方式。在工業生產實踐中,上位機一般是PC機,利用PC機可以對工程實現實時監控,能利用監控界面進行數據采集、數據處理和控制信號的產生與傳輸等功能。Microsoft公司推出的VC++6.0是一種功能極為強大的高級編程語言,通過Visual系列的通信控件(MSComm控件)能方便地完成串行接口收發數據。而TI公司推出的TMS320C240是一種高性能、低價位的定點DSP處理器,非常適合用于從機或智能儀器中。本文正是利用這一控件實現TMS320C240與PC之間的高速串口通信。
1TMS320C240與PC機串行通信的硬件電路
對于TI的TMS320系列的DSP來說,串口解決方案一般有2種:一種是利用DSP的XF、BIO兩個IO引腳以及INT0、INT1兩個中斷引腳來實現;另一種是通過擴展異步通信芯片來實現高速串口通信。這樣串口與DSP的連接可以通過AM8230/82C30等來與DSP連接。這時問題轉換成了2部分:一部分是8230與DSP的接口;另外一部分是RS232串行口與8230的連接。也可以通過TI公司的TL16C750 UART和MAX232構成DSP的串口。為了滿足通信實時性的要求,本文采用的是后一種解決方案。TL16C750是TI公司生產的異步通信芯片, 能夠較好地實現DSP與PC之間高速異步通信。TMS320C240與PC機通過TL16C750進行通信的硬件電路框圖如圖1所示。圖中TMS320C240通過TL16C750將數據送入PC,由PC對數據進行處理和存儲,同時PC通過TL16C750對TMS320C240進行控制。TMS320C240對TL16C750初始化,以完成異步通信協議的設置,TL16C750對TMS320C240的并行數據和PC機的串行數據按照協議進行并串轉換,并按照協議對數據進行發送和接收,然后通過MAX232實現CMOS電平與RS-232-C電平的轉換。

2軟件設計
本系統的軟件設計包括TMS320C240、PC機的通信以及TL16C750的初始化等。下面分別給出TMS320C240初始化TL16C750和PC機通信的主要源程序代碼。
2.1TMS320C240初始化TL16C750
本系統中,TMS320C240對TL16C750初始化的主要任務是設置操作所需要的參數,這些參數包括串行通信時數據串的數據位數、停止位數、奇偶校驗等。另外還需要設置發送和接收的波特率及中斷方式,具體程序如下:


2.2PC機通信軟件的實現
MSComm控件是Microsoft公司提供的簡化Windows下串口通信編程的Active X控件,它為應用程序提供了通過串行接口收發數據的簡便方法,一種是事件驅動法,另一種是查詢法。其主要屬性及設定值見表1。

在VC 6.0的通信程序設計中,首先利用VC6中的MFC Wizard產生一個支持Active X的應用程序框架,在Project/Add to Project菜單下添加Microsoft Communication Control, Version 6.0,這樣就加入了MSComm控件。用鼠標將其拖放到對話框中,并為該對話框新建一個基于Cdialog派生的CPcCOMDlg類,將頭文件MSCommh加入到CPcCOMDlgcpp中, 并為MSComm控件添加關聯量m_COM1, 以及OnComm消息的響應函數OnCommCom1( )。然后在CPcCOMDlg::OnInitDialog( )完成對串口的初始化,代碼如下:

<!--[if !supportEmptyParas]--> 
接下來要為程序主對話框建立響應MSComm事件的處理函數OnCommCom1( ),OnComm事件是通信控件唯一的事件,此事件可用來處理所有與通信有關的事件,不管是何種事情發生,通信控件只用一個CommEvent的屬性予以代表。每當MSComm控件觸發事件時OnCommCom1( )函數將被調用,代碼示例如下:


<!--[endif]-->
3結語
本文利用MSComm控件成功地實現了PC機通過TL16C750與DSP的高速異步串口通信,相對于復雜的API通信函數來說,這種方法不失為一種簡單易行的方法。實驗結果證明,本系統無論是在系統的實時性、可靠性,還是在硬件控制的可靠性上均獲得了滿意的效果。
參考文獻
1Texas Instruments.TL16C750 data manual,1996
2Texas Instruments.TMS320F/C240 DSP Controllers Reference Guide,1999
3范逸之,陳立元,等利用Visual Basic實現串并行通信技術.北京:清華大學出版社,2001
4王念旭DSP基礎與應用系統設計.北京:北京航空航天大學出版社,2001
5Kate GregoryVisual C++6.0開發使用手冊北京:機械工業出版社,1999