<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          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 來源: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ì)者在器件中的控制邏輯來實(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è)備通過PCI/CPCI高速總線與計(jì)算機(jī)主機(jī)相連。
          硬件設(shè)計(jì)
          該設(shè)計(jì)為一種嵌入式實(shí)時(shí)智能通信板,板上用Am186cc 16位嵌入式微處理器進(jìn)行控制板的操作,兩片器件用作上位機(jī)與下位機(jī)訪問雙口RAM的控制譯碼和接口控制譯碼,可在線改寫邏輯。接口芯片可選用各類滿足用戶要求的電平轉(zhuǎn)換電路。該硬件的原理框圖如圖2所示。
          用戶還可以根據(jù)自己的需要在接口處實(shí)現(xiàn)串行通信的不同傳輸模式:全雙工和半雙工。
          板上除板內(nèi)的SRAM外,還設(shè)有雙口RAM區(qū),對(duì)總線開放,用于本板與系統(tǒng)主機(jī)之間的信息交換。串口的數(shù)據(jù)發(fā)送和接收工作由板上微控制器控制完成,一般情況下,當(dāng)主機(jī)有一組數(shù)據(jù)需要向串口傳送時(shí),將數(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的雙口競(jìng)爭(zhēng)原則如圖3所示。S0為初始狀態(tài);S1為通信板上訪問狀態(tài);S2為上位機(jī)訪問狀態(tài);S3為過渡狀態(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ù)需求來選擇電平轉(zhuǎn)換的接口電路,以滿足各種用途。
          軟件設(shè)計(jì)
          在該智能通信模塊的設(shè)計(jì)中,特別強(qiáng)調(diào)底層驅(qū)動(dòng)和上層應(yīng)用的開發(fā)。
          驅(qū)動(dòng)程序和應(yīng)用程序的設(shè)計(jì)
          驅(qū)動(dòng)程序作為系統(tǒng)設(shè)計(jì)的關(guān)鍵技術(shù),它的開發(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í)軟件的良好開發(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)度來決定任務(wù)的執(zhí)行順序,然后用語(yǔ)言來實(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)來設(shè)計(jì),可用于Multibus-I、ISA、PCI等總線,以適應(yīng)市場(chǎng)的實(shí)際應(yīng)用?!?/P>

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



          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();