新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于PCI/CPCI總線的嵌入式實時智能通信系統(tǒng)

基于PCI/CPCI總線的嵌入式實時智能通信系統(tǒng)

作者:■ 武漢數(shù)字工程研究所 黃松 時間:2005-04-27 來源:eaw 收藏

摘    要:本文描述了一種基于的嵌入式實時智能通訊設(shè)備的設(shè)計及實現(xiàn),充分利用了PCI總線的高效能和嵌入式通訊控制器的強(qiáng)大功能,設(shè)計出了一種高速的智能通信設(shè)備。
關(guān)鍵詞:;;

引言
在計算機(jī)通信領(lǐng)域,串口被廣泛運(yùn)用。在某些特殊的應(yīng)用領(lǐng)域,將會用到特殊的串口通信進(jìn)行數(shù)據(jù)通信和報文交換。本設(shè)計就是針對一些特殊用途的應(yīng)用,即一些高速系統(tǒng)串口傳輸方式的設(shè)計。

嵌入式智能通信系統(tǒng)的實時性特征
在設(shè)計一種嵌入式系統(tǒng)的時候,應(yīng)該考慮到硬件和軟件的結(jié)合,并考慮要滿足嵌入式實時系統(tǒng)的各種特點。該設(shè)計具有以下特點:
* 與上位機(jī)接口采用。接口芯片采用AMCC S5920,它是一種,其總線時鐘頻率達(dá)到33MHz,ADD-ON總線的時鐘達(dá)到40MHz,設(shè)計方便、可編程。
* 該設(shè)計用到了AMD公司專用的Am186cc,該嵌入式CPU具有低功耗、體積小、集成度高等特點,能夠把通用CPU中許多由板卡完成的任務(wù)集成在芯片內(nèi)部,從而使設(shè)計趨于小型化。
* 專用性和算法的唯一性,將嵌入式系統(tǒng)和具體的應(yīng)用有機(jī)地結(jié)合在一起。
* 該智能通信設(shè)備體現(xiàn)了硬件和軟件緊密結(jié)合的特點,在硬件方案設(shè)計的同時,軟件要進(jìn)行同步設(shè)計,達(dá)到共同完成預(yù)定的功能,并滿足性能、成本和可靠性目標(biāo)。
* 嵌入式實時系統(tǒng)的設(shè)計對用戶是透明的。
* 設(shè)計響應(yīng)時間快,并有確定的硬實時性要求。
* 該智能通訊具有快速啟動、出錯處理和自動復(fù)位功能,這些功能由設(shè)計者在器件中的控制邏輯來實現(xiàn)。

主要硬件
PCI/CPCI目標(biāo)接口S5920
S5920是AMCC公司的,它實際上可看成是一個橋接集成電路。主要特性包括:符合PCI V2.2規(guī)范;具有可編程預(yù)取和等待功能;局部總線支持8/16/32位可選擇寬度的接口;具有4個可定義的操作區(qū)域BADR1~BADR4,分別為存儲區(qū)、I/O區(qū)、保留區(qū)等。由于S5920的通用性,可用于所有PCI總線到ADD-ON總線的橋接轉(zhuǎn)換電路。
Am186cc
AMD公司的通信控制器Am186cc廣泛運(yùn)用于嵌入式領(lǐng)域。具有四個高速數(shù)據(jù)鏈路控制通道(HDLC);USB外圍控制器;有8個可支持HDLC和USB的智能DMA通道和4個一般的DMA通道等。
由于Am186cc控制器具有高效、高集成的控制和接口功能,已被廣泛運(yùn)用于通訊、電信、工業(yè)控制和網(wǎng)絡(luò)應(yīng)用等領(lǐng)域。本文所描述的設(shè)計中用到了它的控制功能和串口通信功能。

系統(tǒng)設(shè)計
本文設(shè)計的智能通信系統(tǒng)是基于Intel x86平臺的PCI總線和實時操作系統(tǒng),由嵌入式智能通信系統(tǒng)硬件和驅(qū)動程序兩部分組成,如圖1所示。完成數(shù)據(jù)交換和報文處理以及發(fā)送和接收功能。驅(qū)動程序在系統(tǒng)啟動時對硬件進(jìn)行初始化,在系統(tǒng)啟動之后實現(xiàn)硬件和應(yīng)用軟件之間的數(shù)據(jù)交互??紤]到通信的實時性和可靠性要求,該通信設(shè)備通過PCI/CPCI高速總線與計算機(jī)主機(jī)相連。
硬件設(shè)計
該設(shè)計為一種嵌入式實時智能通信板,板上用Am186cc 16位嵌入式微處理器進(jìn)行控制板的操作,兩片器件用作上位機(jī)與下位機(jī)訪問雙口RAM的控制譯碼和接口控制譯碼,可在線改寫邏輯。接口芯片可選用各類滿足用戶要求的電平轉(zhuǎn)換電路。該硬件的原理框圖如圖2所示。
用戶還可以根據(jù)自己的需要在接口處實現(xiàn)串行通信的不同傳輸模式:全雙工和半雙工。
板上除板內(nèi)的SRAM外,還設(shè)有雙口RAM區(qū),對總線開放,用于本板與系統(tǒng)主機(jī)之間的信息交換。串口的數(shù)據(jù)發(fā)送和接收工作由板上微控制器控制完成,一般情況下,當(dāng)主機(jī)有一組數(shù)據(jù)需要向串口傳送時,將數(shù)據(jù)放入雙口RAM,并以中斷方式通知板上CPU,板上CPU將負(fù)責(zé)把數(shù)據(jù)通過串口發(fā)送出去。同樣,當(dāng)CPU從串口收到數(shù)據(jù)后,將其放入雙口RAM,當(dāng)一組數(shù)據(jù)接收完成后,板上CPU將以中斷方式通知系統(tǒng)主機(jī)讀取這批數(shù)據(jù)。
雙口RAM的雙口競爭原則如圖3所示。S0為初始狀態(tài);S1為通信板上訪問狀態(tài);S2為上位機(jī)訪問狀態(tài);S3為過渡狀態(tài);T1~T6為狀態(tài)改變條件。
由于用戶的運(yùn)用差別一般都體現(xiàn)在接口上,例如,有些用戶可能會考慮到系統(tǒng)數(shù)據(jù)傳輸?shù)姆€(wěn)定性和抗干擾性要求,需要采用帶光電隔離的接口模式;有些會考慮到遠(yuǎn)距離傳輸,可采用RS-422電平傳輸?shù)?。這樣,用戶可根據(jù)需求來選擇電平轉(zhuǎn)換的接口電路,以滿足各種用途。
軟件設(shè)計
在該智能通信模塊的設(shè)計中,特別強(qiáng)調(diào)底層驅(qū)動和上層應(yīng)用的開發(fā)。
驅(qū)動程序和應(yīng)用程序的設(shè)計
驅(qū)動程序作為系統(tǒng)設(shè)計的關(guān)鍵技術(shù),它的開發(fā)關(guān)系到整個系統(tǒng)的運(yùn)行。該模塊的驅(qū)動程序主要包括以下幾個部分:
(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用結(jié)構(gòu)定義:
typedef  struct{
 unsigned int msg_head_flag ;/*報文頭標(biāo)識*/
unsigned int msg_head ;   
/*報文頭*/
unsigned int msg_length ; 
/*報文長度*/
unsigned int msg_tail_flag ; 
/*報文尾標(biāo)識*/
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ā)送和接收數(shù)據(jù)函數(shù)
int com_Send_Data(int i,unsigned int length,unsigned char c);/*發(fā)送函數(shù)*/
int com_recv_Data(int channum,unsigned char buff);/*接收函數(shù) */
該智能通信板的驅(qū)動可應(yīng)用于DOS、UNIX以及VxWorks等,上層嵌入式實時軟件的良好開發(fā)也可以提高該模塊的性能。
首先,應(yīng)該根據(jù)用戶的實際需求建立軟件模型,給系統(tǒng)建立一個并發(fā)模型。在這個并發(fā)模型基礎(chǔ)上,實現(xiàn)任務(wù)劃分,即按照一定的任務(wù)構(gòu)造準(zhǔn)則,把系統(tǒng)分解成功能合理和數(shù)目合適的任務(wù)集合。任務(wù)分配把任務(wù)按照一些規(guī)則和約束,放入到相應(yīng)的計算機(jī)中,再由任務(wù)調(diào)度來決定任務(wù)的執(zhí)行順序,然后用語言來實現(xiàn)每個模塊。各部分實現(xiàn)后,應(yīng)該進(jìn)行測試。這樣實現(xiàn)的嵌入式軟件才能和硬件集成為完整的、先進(jìn)的、高效能的系統(tǒng)。
結(jié)語
本文介紹的嵌入式實時智能通信模塊的設(shè)計,功能強(qiáng)大、應(yīng)用廣泛,而且有一定的通用性,軟件設(shè)計的靈活性較強(qiáng),可以滿足各種需要。并且該系統(tǒng)還可根據(jù)上位機(jī)的總線結(jié)構(gòu)來設(shè)計,可用于Multibus-I、ISA、PCI等總線,以適應(yīng)市場的實際應(yīng)用?!?/P>

參考文獻(xiàn)
1孔祥營,柏桂枝.嵌入式實時操作系統(tǒng)VxWorks及其開發(fā)環(huán)境Tornado. 中國電力出版社,2001
2 瀟湘工作室. 串行通信開發(fā)指南. 中國水利水電出版社,2001



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉