TMS320F240與PC機串行通訊的設(shè)計
摘 要:簡要介紹了數(shù)字信號處理器TMS320F240串行通信接口模塊SCI和RS-485標(biāo)準(zhǔn)接口芯片MAX485的原理和應(yīng)用,并給出了TMS320F240與PC機串行通信接口電路,最后,編程實現(xiàn)了串行通信。
關(guān)鍵詞:數(shù)字信號處理器,串行通信接口,MAX485
1 引言
TMS320F240系列是美國TI公司于1997年推出的,專為數(shù)字電機控制和其它控制應(yīng)用系統(tǒng)而設(shè)計的16位定點數(shù)字信號處理器。它將數(shù)字信號處理的高速運算功能與面向電機的強大控制能力結(jié)合在一起,從而成為傳統(tǒng)的多微處理器單元和多片設(shè)計系統(tǒng)的理想替代品。F240片內(nèi)外設(shè)包括雙10位A/D轉(zhuǎn)換器,帶有鎖相環(huán)PLL時鐘模塊,帶中斷的看門狗定時器模塊,串行通信接口SCI及串行外設(shè)接口SPI,另外,還集成了一個事件管理模塊EVM。因此,TMS320F240不僅具有高速數(shù)據(jù)處理能力,還具有控制和事件管理能力,可完成人機界面、與上位機進(jìn)行串行通信等功能。
2 TMS320F240串行通信接口簡介
TMS320F240串行通信接口(SCI)是一個標(biāo)準(zhǔn)的通用異步接收/發(fā)送(UART)通信接口。它的接收器和發(fā)送器都是雙級緩沖的,有自己的使能和中斷位,可以半雙工或全雙工工作。為保證數(shù)據(jù)的完整性,串行通信接口對接收的數(shù)據(jù)進(jìn)行間斷檢測、奇偶性、超時和幀錯誤的檢查。串行通信接口的波特率可高達(dá)64kbps。TMS320F240的SCI串行通信接口包括SCIRXD/IO(串行通信數(shù)據(jù)接收,也可作普通IO)和SCITXD(串行通信數(shù)據(jù)發(fā)送,也可作普通IO)兩個引腳,與之相關(guān)的寄存器包括控制類寄存器和數(shù)據(jù)類寄存器。其中,控制類寄存器有7個,分別用來設(shè)置數(shù)據(jù)格式協(xié)議和通信模式(SCICCR)、中斷使能和內(nèi)部時鐘使能(SCICTL1和SCICTL2)、中斷優(yōu)先級(SCIPRI)、波特率(SCIHBAND和SCILBAND)、引腳控制功能(SCIPC2)以及反映通信狀態(tài)(SCIXST)等;數(shù)據(jù)類寄存器有3個,分別是數(shù)據(jù)發(fā)送緩沖寄存器SCITXBUF、數(shù)據(jù)接受緩沖寄存器SCIRXBUF和仿真數(shù)據(jù)接收緩沖寄存器SCIRXEMU。
TMS320F240的串行通信接口(SCI)模塊提供了兩種工作方式:
1)空閑線方式。通過空閑狀態(tài)的長短區(qū)分信息幀,信息幀里前面的信息塊是地址信息,后面是數(shù)據(jù)信息。
2)地址位方式。數(shù)據(jù)格式上增加1個地址/數(shù)據(jù)位,該位為1表示信息塊為地址信息,否則為數(shù)據(jù)信息。
地址位方式適合于短信息的傳送,空閑線方式適合于長信息的傳送。
3 RS-485串口通信標(biāo)準(zhǔn)及接口電路
RS-232C是廣泛應(yīng)用的串口通信標(biāo)準(zhǔn),但因其推出較早,在現(xiàn)代網(wǎng)絡(luò)通信中已暴露出數(shù)據(jù)傳輸速度慢、傳輸距離短、接口處各信號間容易產(chǎn)生干擾等明顯的缺點。鑒于RS-232C的這些缺點,EIA于1977年制定了新標(biāo)準(zhǔn)RS-499,RS-423/422(全雙工)是RS-499的子集,RS-485(半雙工)則是RS-422的變型。RS-485是一種多發(fā)送器的電路標(biāo)準(zhǔn),它擴展了RS-422A的性能,允許雙絞線上一個發(fā)送器驅(qū)動32個負(fù)載設(shè)備,負(fù)載設(shè)備可以是被動發(fā)送器、接收器或收發(fā)器,RS-485最大傳輸距離為1200m,最大傳送速率可達(dá)10Mb/s。因此,RS-485在遠(yuǎn)程通信和多機總線系統(tǒng)中具有很大的吸引力。MAXIM公司生產(chǎn)的MAX48X/49X系列收發(fā)器芯片,適合于RS-422/RS-485通信標(biāo)準(zhǔn),在實際設(shè)計中得到了廣泛應(yīng)用。本設(shè)計采用MAX485收發(fā)器芯片完成RS-485標(biāo)準(zhǔn)接口通信。MAX485芯片主要有以下特點:
·單+5V電源供電;
·低功耗:工作電流120~500uA;
·驅(qū)動過載保護(hù);
·通信傳輸線上可掛32個收發(fā)器方便組成半雙工通信電路;
·共模輸入電壓范圍:-7V~+12V。
MAX485為8腳封裝,引腳配置如圖1所示,各引腳功能說明如表1所示。
本設(shè)計以PC機為主機,TMS320F240為從機,主從機之間進(jìn)行串口通信。TMS320F240與PC機之間采用RS-485標(biāo)準(zhǔn)進(jìn)行半雙工通信的接口電路如圖2所示。其中,接收器和驅(qū)動器的選擇由TMS320F240的XF/IOPC2引腳控制。由于一般PC機上提供的是標(biāo)準(zhǔn)的RS-232C串行接口,因此,需要RS-232C/RS-485轉(zhuǎn)換器進(jìn)行接口轉(zhuǎn)換。
4 上位機PC串行通信軟件設(shè)計
上位機PC采用高級語言VB通信控件控制通信的方法。在VB5.0及以上版本中,提供了一個名為MSComm的通信控件,它為應(yīng)用程序提供基本的串行通信功能,可以通過串行接口傳輸和接收數(shù)據(jù)。
MSComm控件的重要屬性簡述如下:
·CommPort:設(shè)置并返回通信端口號;
·Settings:以字符串的形式設(shè)置并返回波特率、奇偶校驗、數(shù)據(jù)位、停止位;
·PortOpen:設(shè)置并返回通信端口的狀態(tài),也可以打開和關(guān)閉端口;
·Input:從接收緩沖區(qū)返回和刪除字符;
·Output:向傳輸緩沖區(qū)寫一個字符串。
PC串行口發(fā)送器輸出端和接收器輸入端的數(shù)據(jù)格式為幀信息格式,與TMS320F240的SCI口格式相同。通信時,雙方必須預(yù)先約定通信數(shù)據(jù)傳輸格式、傳輸速率及各自工作方式等。本文設(shè)計一個通信測試軟件,其功能是,PC機鍵盤輸入1個字符,發(fā)送給TMS320F240,TMS320F240接收到PC機發(fā)送的字符后,回送同一個字符給PC機,并在PC機屏幕上顯示出來。雙方約定:波特率為19200bps;1幀信息格式為1個起始位、8個數(shù)據(jù)位和1個停止位;傳送方式:PC機采用查詢方式接收數(shù)據(jù),TMS320F240采用中斷方式接收數(shù)據(jù)。
5 TMS320F240通信軟件設(shè)計
TMS320F240有較強的串行通信能力,設(shè)計到的控制類寄存器較多,這使系統(tǒng)設(shè)計比較靈活。設(shè)計時,首先對控制類寄存器進(jìn)行初始化,包括數(shù)據(jù)格式、中斷使能、中斷優(yōu)先級、波特率等參數(shù)的設(shè)置。初始化完成以后,就可以發(fā)送和接收數(shù)據(jù)了。如果要發(fā)送數(shù)據(jù),只要把數(shù)據(jù)寫入SCITXBUF即可。加入起始位、停止位、校驗位以及在波特率規(guī)定的節(jié)拍下移位到發(fā)送引腳SCITXD/IO等工作由串行通信SCI模塊本身自動完成;如果要接收數(shù)據(jù),只要把SCIRXBUF的內(nèi)容讀出即可(從引腳SCIRXD/IO移位來的信息由串行通信SCI模塊本身自動去掉起始位、停止位、校驗位,并將數(shù)據(jù)放到SCIRXBUF中)。下面給出用TMS320F240匯編語言編寫的串行通信測試程序(圖3為程序流程圖)。
·title“SCI testprogram”
·include“F240reg.h”
;TMS320F240的所有寄存器地址定義
;都包括在頭文件F240reg.h中,
;為增加本程序的可讀性,特把本程序
;中用到的寄存器列出如下。
*中斷控制寄存器
6 結(jié)束語
本文所設(shè)計的通訊測試程序在IBM-PC機和TMS320F240上調(diào)試成功,說明DSP通信設(shè)計中硬件和軟件都是正確的,下一步可以進(jìn)行實用通訊軟件的設(shè)計。
參考文獻(xiàn)
1 范逸之.利用Visual Basic實現(xiàn)串并行通信技術(shù).北京:清華大學(xué)出版社,2001
(來源:電子工程師)