新聞中心

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

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

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

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

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

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

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

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

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



評(píng)論


相關(guān)推薦

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

關(guān)閉