- 相關推薦
利用異步通信芯片16C552實現PC機與DSP的串行通訊
摘要:介紹了異步通信芯片16C552的功能、特點、結構和內部寄存器,給出了用16C552芯片實現PC機與DSP串行通訊的方法,同時給出了它們之間的硬件接口電路和軟件初始化程序。關鍵詞:16C552;串行通訊;異步
當實現PC機與DSP的串行通訊時,通常可直接利用DSP的串行通訊接口(SCI)模塊和SCI多處理器通訊協議(即空閑線路模式和地址位模式)來在同一串行線路中實現多個處理器之間的通訊,也可以采用SCI異步通訊模式實現串行通訊。這兩種方式雖然都能方便地實現串行通訊,但它們都需占用系統(tǒng)較多的硬件和軟件資源,(范文先生網www.gymyzhishaji.com收集整理)因而不適用于對實時性要求比較高且系統(tǒng)資源緊張的應用場合。筆者在研制電力有源濾波實驗系統(tǒng)中,由于采用了異步通訊芯片16C552,從而成功解決了這個問題。本文將從電路結構和軟件編程兩個方面介紹該方案的實現方法。
1。保叮茫担担埠喗
1.1 功能特點及結構框圖
16C552是TI(TL16C552)和VLSI(VL16C552)等公司生產的異步通信芯片,具有兩個增強的通用異步通訊單元通道和一個增強的雙向打印機端口;支持TL16C450和FIFO兩種模式,其16字節(jié)的FIFO可減少CPU中斷;每個通道都具有獨立的發(fā)送、接收、線路狀態(tài)和設置中斷功能,同時具有獨立的MO-DEM控制信號、可編程的串行數據發(fā)送格式(包括數據位長度、校驗方式、停止位長度)和可編程波特率發(fā)生器;另外,每個通道的數據和控制總線還具有三態(tài)TTL驅動功能。
TL16C552AM是TI公司的68腳PLCC(Plastic Leaded Chip Carrier)封裝芯片,其管腳及功能框圖如圖1所示。從圖中可以看出,它的串行口主要完成兩個功能,一是把外設或調制解調器接收來的串行數據轉換成并行數據;二是把CPU的并行數據轉換成串行數據以便發(fā)送。在正常操作過程中,CPU可以隨時讀取16C552的狀態(tài)信息,以報告16C552傳輸操作的類型和狀態(tài),包括各種錯誤狀態(tài),如奇偶校驗、溢出、幀錯誤和FIFO錯誤等。此外,16C552還具有完整的MODEM控制功能,并有CTS、RTS、DSR、DTR、RI、DCD等信號端。
16C552具有一套完善的中斷系統(tǒng),可以自動設定優(yōu)先級。它的串行口和并行口都可以獨立地工作于中斷和查詢兩種工作方式。
1.2 16C552的內部寄存器
16C552內部有12個單字節(jié)寄存器,這些寄存器占用了8個I/O口地址,其地址由A0~A2決定。其中有些寄存器共用一個I/O口地址,共用的I/O口可以通過讀/寫信號和線路控制寄存器(LCR)的D7位(DLAB)來進行區(qū)分,具體描述見表1所列,需要說明的是:只有當16C552的CS0或CS1為低電平時,串行通道才能被訪問。
表1 I6C552的內部寄存器
關于各寄存器內容的具體規(guī)定,限于篇幅,這里不作詳述,有興趣者可參看TI公司的相關產品資料介紹,但在串行通訊應用中,要重點搞清楚FCR、LCR、IER等幾個寄存器的內容。此外,在實際應用中,有時可能會忽視MODEM控制寄存器中的D4位,該位為自測試循環(huán)回送狀態(tài)控制位,利用它可以對串口的自測試進行控制,因此,在自測試進行完畢后,還應對該位進行復位,以保證系統(tǒng)的正常運行。
2 通訊系統(tǒng)硬件接口電路
本系統(tǒng)的硬件接口電路如圖2所示。其中,地址譯碼電路可以根據實際需要采用不同的電路實現。為了使系統(tǒng)使用靈活方便,本方案中采用一片CPLD來進行系統(tǒng)的地址分配。復位電路可以利用專用復位芯片,也可用上拉電阻方式實現。外接晶振可以自行選擇,然后根據晶振頻率設置除數鎖存器的高位和低位,從而獲得通訊系統(tǒng)正確的波特率,本系統(tǒng)中使用的晶振是8MHz。此外,由于16C552A有兩個串行通道和一個標準并行口,它們相互之間的配合使用在硬件和軟件上都要加以注意。建議將不用端口的片選接到高電平(16C552A的片選為低電平有效),以免出現錯誤。
3 串行通訊軟件設計
3.1 通訊協議
本設計的通訊協議包括以下幾點:
(1)波特率為9600。
(2)通訊命令由2個字節(jié)構成:第一個字節(jié)是同步字節(jié)0XFF;第二個字節(jié)是命令碼,主要用來指示各種控制命令。
(3)每個字節(jié)包括8位數據位和1位停止位,無校驗。
(4)在通訊過程中,上位機向TMS320F243發(fā)送同步命令,TMS320F243接收到后立即應答,若應答錯誤則重發(fā)。
(5)通訊程序向TMS320F243發(fā)送控制命令時,TMS320F243返回接收正確應答信號;通訊程序向TMS320F243查詢系統(tǒng)參數命令時,TMS320F243按照規(guī)定格式返回所需數據。
PC機和TMS320F243均采用異步通訊方式,PC機采用事件驅動方式來接收數據,TMS320F243采用中斷方式接收數據,而用查詢方式發(fā)送數據。
3.2 上下位機通訊軟件設計
在PC機上編寫串行通訊程序至少有三種方法,分別為匯編語言、C語言和Visual系列通訊控件(MSComm)。相比較而言,Visual系列通訊控件能夠用少量的代碼輕松高效地完成編程任務。實際應用中,可用以Visual Basic(簡稱VB)6.0中的通訊控件MSComm為基礎編寫PC機的串行通訊程序,而用匯編語言編寫下位機(F243)軟件。上、下位機的串口程序流程分別如圖3和圖4所示。 16C552的初始化程序如下:
;THE 16C552 INITIALIZATION PROGRAM
C552_INIT:
LDP #00h
SPLK #83h,GSR0
OUT GSR0,0E003h ;設置LCR
SPLK #34h,GSR0
OUT GSR0,0E000h ;設置DLL
SPLK #00h,GSR0
OUT GSR0,0E001h ?; 設置DLM
SPLK #03h,GSR0
OUT GSR0,0E003h ?; 設置LCR
SPLK #08h,GSR0
OUT GSR0,0E004h ?; 設置MCR
SPLK #01h,GSR0
OUT GSR0,0E002h ?; 設置FCR
SPLK #01h,GSR0
OUT GSR0,0E001h ? ;設置IER
RET
圖4
4 結束語
本文對使用異步通信芯片16C552實現PC機與DSP之間的串行通訊方法進行了研究,筆者已開發(fā)了其串行通訊軟件,并在實驗中調試通過。該軟件不僅使用靈活方便,而且可以利用16C552的FIFO模式實現大數據量的收發(fā),從而減少了對DSP的中斷,緩解了系統(tǒng)資源緊張的情況。
【利用異步通信芯片16C552實現PC機與DSP的串行通訊】相關文章:
TMS320C54XX系列DSP與PC機間串行通信的實現08-06
利用VB實現PC機與多單片機通訊08-06
多路異步串行通信系統(tǒng)在光纖陀螺組合中的設計與實現08-06
利用ISA總線實現對DSP芯片VC5402的軟配置08-06
異步串行通信接口的IP核設計08-06
DSP與PC間的數據通訊08-06
Windows CE下串行通信的實現08-06
單片機與DSP結合的dsPIC芯片08-06