基于PCI/CPCI總線的嵌入式實時智能通信系統(tǒng)
摘 要:本文描述了一種基于PCI/CPCI總線的嵌入式實時智能通訊設備的設計及實現(xiàn),充分利用了PCI總線的高效能和嵌入式通訊控制器的強大功能,設計出了一種高速的智能通信設備。
關鍵詞:嵌入式微控制器;CPLD;智能通信模塊;PCI目標設備接口芯片;PCI/CPCI總線
引言
在計算機通信領域,串口被廣泛運用。在某些特殊的應用領域,將會用到特殊的串口通信進行數據通信和報文交換。本設計就是針對一些特殊用途的應用,即一些高速系統(tǒng)串口傳輸方式的設計。
嵌入式智能通信系統(tǒng)的實時性特征
在設計一種嵌入式系統(tǒng)的時候,應該考慮到硬件和軟件的結合,并考慮要滿足嵌入式實時系統(tǒng)的各種特點。該設計具有以下特點:
* 與上位機接口采用PCI/CPCI總線。接口芯片采用AMCC S5920,它是一種PCI目標設備接口芯片,其總線時鐘頻率達到33MHz,ADD-ON總線的時鐘達到40MHz,設計方便、可編程。
* 該設計用到了AMD公司專用的嵌入式微控制器Am186cc,該嵌入式CPU具有低功耗、體積小、集成度高等特點,能夠把通用CPU中許多由板卡完成的任務集成在芯片內部,從而使設計趨于小型化。
* 專用性和算法的唯一性,將嵌入式系統(tǒng)和具體的應用有機地結合在一起。
* 該智能通信設備體現(xiàn)了硬件和軟件緊密結合的特點,在硬件方案設計的同時,軟件要進行同步設計,達到共同完成預定的功能,并滿足性能、成本和可靠性目標。
* 嵌入式實時系統(tǒng)的設計對用戶是透明的。
* 設計響應時間快,并有確定的硬實時性要求。
* 該智能通訊模塊具有快速啟動、出錯處理和自動復位功能,這些功能由設計者在CPLD器件中的控制邏輯來實現(xiàn)。
主要硬件
PCI/CPCI目標接口S5920
S5920是AMCC公司的PCI目標設備接口芯片,它實際上可看成是一個橋接集成電路。主要特性包括:符合PCI V2.2規(guī)范;具有可編程預取和等待功能;局部總線支持8/16/32位可選擇寬度的接口;具有4個可定義的操作區(qū)域BADR1~BADR4,分別為存儲區(qū)、I/O區(qū)、保留區(qū)等。由于S5920的通用性,可用于所有PCI總線到ADD-ON總線的橋接轉換電路。
嵌入式微控制器Am186cc
AMD公司的通信控制器Am186cc廣泛運用于嵌入式領域。具有四個高速數據鏈路控制通道(HDLC);USB外圍控制器;有8個可支持HDLC和USB的智能DMA通道和4個一般的DMA通道等。
由于Am186cc控制器具有高效、高集成的控制和接口功能,已被廣泛運用于通訊、電信、工業(yè)控制和網絡應用等領域。本文所描述的智能通信模塊設計中用到了它的控制功能和串口通信功能。
系統(tǒng)設計
本文設計的智能通信系統(tǒng)是基于Intel x86平臺的PCI總線和實時操作系統(tǒng),由嵌入式智能通信系統(tǒng)硬件和驅動程序兩部分組成,如圖1所示。智能通信模塊完成數據交換和報文處理以及發(fā)送和接收功能。驅動程序在系統(tǒng)啟動時對硬件進行初始化,在系統(tǒng)啟動之后實現(xiàn)硬件和應用軟件之間的數據交互。考慮到通信的實時性和可靠性要求,該通信設備通過PCI/CPCI高速總線與計算機主機相連。
硬件設計
該設計為一種嵌入式實時智能通信板,板上用Am186cc 16位嵌入式微處理器進行控制板的操作,兩片CPLD器件用作上位機與下位機訪問雙口RAM的控制譯碼和接口控制譯碼,可在線改寫邏輯。接口芯片可選用各類滿足用戶要求的電平轉換電路。該硬件的原理框圖如圖2所示。
用戶還可以根據自己的需要在接口處實現(xiàn)串行通信的不同傳輸模式:全雙工和半雙工。
板上除板內的SRAM外,還設有雙口RAM區(qū),對總線開放,用于本板與系統(tǒng)主機之間的信息交換。串口的數據發(fā)送和接收工作由板上微控制器控制完成,一般情況下,當主機有一組數據需要向串口傳送時,將數據放入雙口RAM,并以中斷方式通知板上CPU,板上CPU將負責把數據通過串口發(fā)送出去。同樣,當CPU從串口收到數據后,將其放入雙口RAM,當一組數據接收完成后,板上CPU將以中斷方式通知系統(tǒng)主機讀取這批數據。
雙口RAM的雙口競爭原則如圖3所示。S0為初始狀態(tài);S1為通信板上訪問狀態(tài);S2為上位機訪問狀態(tài);S3為過渡狀態(tài);T1~T6為狀態(tài)改變條件。
由于用戶的運用差別一般都體現(xiàn)在接口上,例如,有些用戶可能會考慮到系統(tǒng)數據傳輸的穩(wěn)定性和抗干擾性要求,需要采用帶光電隔離的接口模式;有些會考慮到遠距離傳輸,可采用RS-422電平傳輸等。這樣,用戶可根據需求來選擇電平轉換的接口電路,以滿足各種用途。
軟件設計
在該智能通信模塊的設計中,特別強調底層驅動和上層應用的開發(fā)。
驅動程序和應用程序的設計
驅動程序作為系統(tǒng)設計的關鍵技術,它的開發(fā)關系到整個系統(tǒng)的運行。該模塊的驅動程序主要包括以下幾個部分:
(1) 模塊初始化
int Board_Initialized(int board_num);/*可用多塊智能通訊板,可分別初始化,也可同時 初始化*/
(2) 模塊禁止
int Board_Close(int channels);/*可通道禁止,也可模塊級禁止*/
(3) 子通道初始化
int com_Sub_Initialized(int i,int j,msg_format msg)/*包括子通道初始化和報文格式定義*/
報文格式msg_format用結構定義:
typedef struct{
unsigned int msg_head_flag ;/*報文頭標識*/
unsigned int msg_head ;
/*報文頭*/
unsigned int msg_length ;
/*報文長度*/
unsigned int msg_tail_flag ;
/*報文尾標識*/
unsigned int msg_tail ;
/*報文尾*/
unsigned int msg_recv_baud ;
/*接收波特率*/
unsigned int msg_send_band ;
/*發(fā)送波特率*/
unsigned int msg_parity ;
/*奇偶校驗位*/
unsigned int msg_stop ;
/*停止位*/
}msg_format;
(4) 串口發(fā)送和接收數據函數
int com_Send_Data(int i,unsigned int length,unsigned char c);/*發(fā)送函數*/
int com_recv_Data(int channum,unsigned char buff);/*接收函數 */
該智能通信板的驅動可應用于DOS、UNIX以及VxWorks等,上層嵌入式實時軟件的良好開發(fā)也可以提高該模塊的性能。
首先,應該根據用戶的實際需求建立軟件模型,給系統(tǒng)建立一個并發(fā)模型。在這個并發(fā)模型基礎上,實現(xiàn)任務劃分,即按照一定的任務構造準則,把系統(tǒng)分解成功能合理和數目合適的任務集合。任務分配把任務按照一些規(guī)則和約束,放入到相應的計算機中,再由任務調度來決定任務的執(zhí)行順序,然后用語言來實現(xiàn)每個模塊。各部分實現(xiàn)后,應該進行測試。這樣實現(xiàn)的嵌入式軟件才能和硬件集成為完整的、先進的、高效能的系統(tǒng)。
結語
本文介紹的嵌入式實時智能通信模塊的設計,功能強大、應用廣泛,而且有一定的通用性,軟件設計的靈活性較強,可以滿足各種需要。并且該系統(tǒng)還可根據上位機的總線結構來設計,可用于Multibus-I、ISA、PCI等總線,以適應市場的實際應用?!?/P>
參考文獻
1孔祥營,柏桂枝.嵌入式實時操作系統(tǒng)VxWorks及其開發(fā)環(huán)境Tornado. 中國電力出版社,2001
2 瀟湘工作室. 串行通信開發(fā)指南. 中國水利水電出版社,2001
評論