摘 要: 給出一種TMS320C30/PLD系統與PC104通過標準并行接口進行雙向通信時擴展并口的方法,給出了硬件實現電路的框圖,分析了通信過程中握手信號的時序關系,并列出了通信測試程序的流程圖。
關鍵詞: 數字信號處理(DSP) 可編程邏輯器件(PLD) VHDL 并行通信
TMS320C30是TI公司的通用DSP芯片,它有很強的浮點/定點數據運算能力和很高的處理速度,特別適合于進行實時的數據采集及運算處理(如FFT,FIR、IIR濾波等)。但是,DSP一般I/O能力及文檔處理能力較弱,所以,常常將DSP系統與PC104組成主機/從機系統,由PC104擔負系統的各模塊(分機)的管理、I/O設備的通信、文檔處理等任務;而由DSP實現數據采集和實時處理。
因為C30沒有標準通信接口,需要進行擴展。與PC機的通信可以通過標準異步串口進行,也可以通過標準并口進行,串口的特點是抗干擾能力強、連接較簡單、編程也較方便,因而應用較廣泛;但在對實時性要求較高的場合,其通信速度往往不能滿足要求,這時可以通過標準并口進行。標準并口的擴展可以采用通用并行接口芯片,如8255、TL16C552等。但是,由于現在的數字電路系統一般都包含PLD,可以利用PLD的資源進行并行口的擴展,這樣做有很多優點:利用現有資源,節省器件成本;節省電路板尺寸;功能的修改或擴展較容易,便于與以后新的接口標準兼容;由于可以根據實際需要對通用接口芯片的功能進行簡化,軟、硬件的設計都更加方便。
1 PC104的并口結構
PC104的并行接口可以工作在PC/AT方式,在這種方式下,接口只能輸出數據,主要用于控制打印機等輸出設備。也可以工作在PS/2方式,在這種方式下,它可以雙向傳輸數據,我們就采用這種方式進行PC104與DSP的通信,C30的并口也采用與PC104兼容的結構和編程方式。
標準并口的信號定義如表1所示。
其中包含八位雙向數據線(PD0~PD7),四根控制線(輸出)和五根狀態線(輸入)。
標準雙向并口的控制寄存器如表2所示。
寄存器位的定義與相應信號線的定義相同。但是,信號BSY、AFDn、STBn與寄存器中的定義是互為反向關系的,在編程時要注意。DIR控制數據的流向,為0時輸出,為1時輸入。PRINTn是打印機中斷狀態位,沒有使用;INT2EN是中斷允許控制位,可以不用,對這兩個寄存器位不做更多說明。
2 并口擴展的方法
2.1 硬件結構
我們采用四線握手制進行通信,其連接如圖1所示。
根據這種要求我們可以設計出所需要的并行接口,如圖2所示。與標準并口相比,它只工作在雙向方式;狀態線、控制線都少一些(但是可以根據實際情況擴充);與CPU的接口采用了較為簡化的設計,信號定義如下:XD[7..0]為C30的擴展數據總線的低八位,XA[1..0]為擴展地址總線的低二位,CS為片選信號,XR/Wn為擴展總線的讀寫控制信號,IOSTRBn為擴展總線的選通脈沖,INT為并口的中斷信號輸出,采用ACKn的下降沿觸發C30中斷,與標準并口不同(上升沿);寄存器的地址偏移量采用與標準并口相同的方式,基地址則可以由系統的設計決定。
并行接口的設計采用VHDL語言來描述,以適用于不同的PLD器件。
2.2 時序分析
下面我們描述通信過程的時序關系。通信程序在發送時采用查詢方式,而接收時則采用中斷方式。因為PC104與C30執行程序的速度不同,處理中斷的方式也不同,因而PC104發往C30與C30發往PC104時的握手信號的時序也有一些區別,圖3、圖4分別是兩種情況下的時序圖。圖中,只標出了時序的先后關系,具體的數值要遵守并口的標準并在程序調試中確定。
因為PC104的STBn的后沿(上升沿)是個斜坡(10μs左右)發送完一個字節后,要延時一段時間,待STBn穩定后,才能發送下一個字節;否則,C30的中斷不能可靠觸發,將造成通信的錯誤。發送速率為每字節15μs左右。
這種情況下限制發送速度的因素主要是PC104響應和處理通信中斷的時間,對C語言編寫的接收程序進行優化也可以使通信速度控制在15μs左右。
2.3 軟件流程圖
下面我們舉一個例子來說明PC104與C30進行通信的過程。在這個調試程序中,PC104先發送一組數據,C30接受完后再返回一組數據給PC104,然后通信結束。圖5、6、7、8描述的分別是PC104上的主程序、接收中斷服務子程序、C30上的主程序以及接收中斷服務子程序的流程圖。
參考文獻
1 (美國)Texas Instruments公司.TL16C552 Data Book
2 盛博公司PC104技術手冊
3 (美國)Texas Instruments公司.TMS320C3X用戶指南
4 李繼燦,李華貴編著.新編16-32位微型計算機原理及應用.北京:清華大學出版社