TMS320VC5402與PC機(jī)進(jìn)行串行通信的兩種方案
3.1.2 TL16C550片內(nèi)寄存器介紹
TL16C550內(nèi)部共有11個寄存器,這些寄存器分別用于實現(xiàn)通信參數(shù)的設(shè)置、對線路及MODEN的狀態(tài)訪問、數(shù)據(jù)的發(fā)送和接收及中斷管理等功能。表2描述了訪問這些寄存器時鎖存器訪問位DLAB和A0、A1、A2的狀態(tài)。
3.2 C5402與PC機(jī)串行通信的硬件電路
C5402與PC機(jī)串行通信的硬件電路如圖3所示。
圖3中,TL16C550的CS0和CS1都接高電平,CS2接C5402的外部I/O空間,選擇線IS。
當(dāng)XIN、XOUT端外接1.8342MHz晶振時,C5402以28400的波特率與PC機(jī)通信,所以,波特率因子寄存器的低位設(shè)為02H,高位設(shè)為00H。
TLC16C550的數(shù)據(jù)線D0-D7直接與C5402的D0-D7數(shù)據(jù)線相連,TL16C550的片內(nèi)寄存器選擇線接C5402的A0-A2。
由于RS-232-C電路電平與CMOS電平不同,因此,RS232驅(qū)動器與CMOS電平連接時必須經(jīng)過電平轉(zhuǎn)換。這里,我們采用MAX232完成這一功能,MAX232具有一個專有的低壓降發(fā)送器輸出級,在其以雙電荷棒3.0V~5.5V供電時,可以獲得真正的RS-232性能。該器件只需4個1μF小型外接電容,可在維持RS-232輸出電平的情況下確保運(yùn)行于120kb/s數(shù)據(jù)率,因此十分適合高速串行通信場合。
利用RXRDY和TXRDY引入外部中斷,從而系統(tǒng)工作在中斷方式,RXRDY產(chǎn)生外部0中斷(INT0),而TXRDY將產(chǎn)生外部1中斷(INT1)。
3.3 軟件設(shè)計
系統(tǒng)軟件設(shè)計包括PC機(jī)、TMS320VC5402以
及TL16C550的初始化和通信協(xié)議等。初始化的主要任務(wù)是設(shè)置操作所需要的參數(shù)。這些參數(shù)包括串行通信時數(shù)據(jù)串的數(shù)據(jù)位數(shù)、停止位數(shù)、奇偶校驗等。另外,還需要設(shè)置發(fā)送和接收的波特率及中斷方式。
其中需要注意的是由于系統(tǒng)工作在中斷方式,應(yīng)允許接收就緒中斷和發(fā)送緩沖區(qū)空中斷,相應(yīng)地,中斷允許寄存器的值應(yīng)該設(shè)置為03H。
4 結(jié)束語
利用通用I/O引腳擴(kuò)展串口時硬件構(gòu)成簡單,
但軟件編制較為復(fù)雜,而且由于DSP的中斷優(yōu)先級無法通過軟件設(shè)置,在有其他外部中斷的情況下較難適用。相比之下,運(yùn)用UART來擴(kuò)展串口增加了硬件,但降低了軟件復(fù)雜度,并且免去了對時鐘中斷的依賴,還可引進(jìn)另外的外部中斷,兩個通用引腳也可留出,更適合在較復(fù)雜的獨(dú)立系統(tǒng)中使用。在應(yīng)用時,可根據(jù)實際情況進(jìn)行選擇。
評論