高清日韩视频在线观看-国产成人精品视频影院-亚洲黄色小说在线观看-亚洲熟女一区二区三区精品

網(wǎng)站首頁(yè)

HOME

關(guān)于我們

ABOUT US

產(chǎn)品展示

PRODUCT

新聞中心

NEWS

成功案例

CASE

下載中心

DOWNLOAD

人才招聘

RECRUIT

在線留言

MESSAGE

聯(lián)系我們

CONTACT US

    技術(shù)文章
    聯(lián)系我們
    西安航普電子有限責(zé)任公司
    電話:029-81870107
    郵箱:hangpudianzi@163.com
    網(wǎng)址:oweedu.com
    公司地址:西安市電子四路西京三號(hào)2號(hào)樓17層
     
     
    技術(shù)文章
    基于ARM和VxWorks的CPCI工控平臺(tái)的設(shè)計(jì)
    更新時(shí)間:2017-09-07 13:15:41    點(diǎn)擊:1411次
    關(guān)鍵詞:CPCI 平臺(tái);ARM;VxWorks ;熱插拔;工業(yè)控制

    1 引言

    嵌入式平臺(tái)一般以主板為基礎(chǔ),根據(jù)應(yīng)用擴(kuò)展功能模塊。如果適配板用可編程邏輯器件實(shí)現(xiàn),主板通過它與功能模塊相連,那么主板可以適應(yīng)功能模塊的變化。假如適配板為功能模塊預(yù)留一定數(shù)量的接口,那么平臺(tái)具有更大的擴(kuò)展性。但由于適配板的接口是設(shè)計(jì)者自定義的,因而本質(zhì)上決定了基于適配板方法設(shè)計(jì)的嵌入式平臺(tái)不具有開放性。為了解決這個(gè)問題,主板與功能模塊必須基于某種標(biāo)準(zhǔn)總線進(jìn)行設(shè)計(jì)。


    CompactPCI( 下文簡(jiǎn)稱CPCI)總線是基于PCI電氣規(guī)范開發(fā)的高性能工業(yè)總線,廣泛應(yīng)用于工控、通訊等行業(yè)。簡(jiǎn)單來說,CPCI總線是PCI 總線的電氣規(guī)范、標(biāo)準(zhǔn)的針孔連接器、歐洲卡規(guī)范三者的結(jié)晶。因此基于CPCI 總線設(shè)計(jì)的嵌入式平臺(tái)不僅具有PCI 總線的高性能、歐洲卡結(jié)構(gòu)的高可靠性以及支持熱插拔功能,而且具有良好的開放性和擴(kuò)展性,可以適應(yīng)不斷變化的應(yīng)用環(huán)境和需求[1]。針對(duì)本單位實(shí)際情況,本文提出構(gòu)建基于ARM處理器與VxWorks操作系統(tǒng)的CPCI工控平臺(tái),用它代替目前基于適配板方法設(shè)計(jì)的嵌入式平臺(tái),并將它作為新項(xiàng)目的開發(fā)平臺(tái)。文章給出該平臺(tái)設(shè)計(jì)方案,并重點(diǎn)介紹該平臺(tái)硬件和軟件的設(shè)計(jì)。


    2 平臺(tái)方案

    CPCI平臺(tái)硬件一般由系統(tǒng)卡、外設(shè)卡、無源底板、電源模塊、機(jī)箱組成。


    CPCI平臺(tái)可按基本熱插拔、全熱插拔、高可用性熱插拔三種層次實(shí)現(xiàn)。其中基本熱插拔需要用戶通過操作臺(tái)與操作系統(tǒng)交互來實(shí)現(xiàn)卡的熱插拔管理,不太適合嵌入式的應(yīng)用;而全熱插拔則用卡推出/插入手柄與LED指示燈代替操作臺(tái),大大簡(jiǎn)化了用戶與操作系統(tǒng)的交互;而高可用性熱插拔在全熱插拔的基礎(chǔ)上,除了用軟件對(duì)硬件連接過程進(jìn)行管理,并且在系統(tǒng)卡與每個(gè)外設(shè)卡槽之間實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的復(fù)位和隔離信號(hào),這樣操作系統(tǒng)可以自動(dòng)隔離并替換壞卡。高可用性熱插拔的性能優(yōu)于全熱插拔,但其硬件和軟件的設(shè)計(jì)難度也增大。故本CPCI平臺(tái)將按全熱插拔方式實(shí)現(xiàn)。


    3 平臺(tái)硬件設(shè)計(jì)

    對(duì)于CPCI 機(jī)箱、底板、電源,可以根據(jù)應(yīng)用選擇標(biāo)準(zhǔn)構(gòu)件。在此只介紹系統(tǒng)卡與外設(shè)卡的硬件設(shè)計(jì)。


    3.1 系統(tǒng)卡硬件設(shè)計(jì)


    系統(tǒng)卡主要由CPU、CPCI主橋控制器、熱插拔控制電路、外圍電路組成。CPU是整個(gè)平臺(tái)的指揮官;CPCI主橋控制器為CPCI總線的擴(kuò)展提供橋梁;熱插拔控制電路負(fù)責(zé)系統(tǒng)卡上電與斷電的控制;外圍電路針對(duì)應(yīng)用而定。


    CPCI主橋控制器的選型是系統(tǒng)卡設(shè)計(jì)的關(guān)鍵,如果CPU 內(nèi)置PCI 主橋控制器,則無需額外的CPCI主橋控制器,只需增加卡熱插拔檢測(cè)以及狀態(tài)指示控制電路,即可實(shí)現(xiàn)CPCI主橋控制器的功能。這樣不僅簡(jiǎn)化設(shè)計(jì),而且降低成本。如果CPU沒有內(nèi)置PCI主橋控制器,可以采取如下三種方法實(shí)現(xiàn)CPCI主橋控制器的功能。


    (1)自己設(shè)計(jì)邏輯,然后定制ASIC芯片。

    (2)自己設(shè)計(jì)或購(gòu)買別人的接口邏輯,用大規(guī)模CPLD或FPGA來實(shí)現(xiàn)。

    (3)選擇通用的CPCI主橋芯片。


    第一種方法,只適用于用量比較大的情況,否則ASIC開發(fā)成本太高。第二和第三種方法,適用于小規(guī)模的情況。對(duì)于第二種方法,設(shè)計(jì)難度較大,并且開發(fā)出來的CPCI接口性能還要經(jīng)過嚴(yán)格的驗(yàn)證才能使用,這無疑延長(zhǎng)了產(chǎn)品的研發(fā)周期。由于我們使用的ARM9處理器沒有內(nèi)置PCI 主橋控制器,在此選用第三種方法。在眾多廠家生產(chǎn)的PCI芯片中,以美國(guó)PLX公司的PCI9056功能最完備,是作為CPCI主橋芯片的最佳選擇。PCI9056具有PCI R2.2規(guī)范兼容的32位,最高可達(dá)66MHZ的PCI總線,并且它滿足PICMG 2.0 R3.0 CPCI規(guī)范以及PICMG 2.1 R2.0 Hot Swap規(guī)范的要求。PCI9056的Local Bus可配置為三種模式,以滿足不同體系結(jié)構(gòu)CPU的需要。針對(duì)ARM9處理器,我們把PCI9056的Local Bus配置為C模式,并且通過增加邏輯器件將ARM9 處理器的外部總線接口與PCI9056 的Local Bus進(jìn)行連接,以實(shí)現(xiàn)時(shí)序協(xié)調(diào)和傳輸控制。PCI9056內(nèi)置PCI仲裁器,可以支持7個(gè)PCI設(shè)備的仲裁,這很適用于標(biāo)準(zhǔn)8槽底板的設(shè)計(jì)。


    熱插拔控制電路設(shè)計(jì)的關(guān)鍵是熱插拔控制器的選型,而熱插拔控制器的供應(yīng)商眾多,每個(gè)供應(yīng)商針對(duì)不同應(yīng)用提供不同型號(hào)的芯片??紤]到PCI9056主橋控制器集成了預(yù)充電路、Early Power電路,我們選擇Linear公司的LTC1643A芯片作為熱插拔控制器。它可以控制3.3V、5V、±12V電壓的供電,并且提供Fault、Power-Good狀態(tài)信息。系統(tǒng)卡電路的復(fù)位可以由Power-Good狀態(tài)來進(jìn)行控制。


    現(xiàn)在以PCI9056作為CPCI主橋控制器,以LTC1643A作為熱插拔控制器,簡(jiǎn)單介紹系統(tǒng)卡插入底板的上電工作過程,而系統(tǒng)卡拔出底板的斷電工作過程與之相反。


    (1)首先,系統(tǒng)卡的孔式插座與底板最長(zhǎng)的電源、地信號(hào)針接觸,此時(shí)LTC1643A的ON#與PCI9056的BD_SEL#信號(hào)均被拉高,LTC1643A處于非工作狀態(tài),而PCI9056處于預(yù)充狀態(tài)。


    (2)接著,系統(tǒng)卡的孔式插座與底板的中長(zhǎng)信號(hào)針接觸,由于PCI9056處于預(yù)充狀態(tài),這樣系統(tǒng)卡與底板CPCI信號(hào)間的能源傳送減到最少。


    (3)最后,系統(tǒng)卡的孔式插座與底板的最短信號(hào)針BD_SEL#接觸,由于底板BD_SEL#信號(hào)針接地,所以LTC1643A的ON#與PCI9056 的BD_SEL#信號(hào)均被拉低。此時(shí),PCI9056脫離預(yù)充狀態(tài),LTC1643A開始工作。LTC1643A控制3.3V 、5V、±12V上電,當(dāng)它檢測(cè)到3.3V、5V、±12V輸出均在誤差范圍內(nèi),它控制Power-Good#信號(hào)拉低,從而控制CPU的復(fù)位信號(hào),讓CPU開始上電初始化過程。


    (4)當(dāng)CPU對(duì)PCI9056初始化時(shí),它控制PCI9056進(jìn)行復(fù)位,從而控制PCI_RST#信號(hào)復(fù)位,達(dá)到對(duì)底板上所有外設(shè)卡復(fù)位的目的。


    3.2 外設(shè)卡硬件設(shè)計(jì)


    外設(shè)卡主要由CPCI主/從設(shè)備接口芯片、EEPROM、熱插拔控制電路、應(yīng)用電路組成。CPCI主/從設(shè)備接口芯片允許外設(shè)通過它掛接到CPCI總線上,CPCI主設(shè)備接口芯片既可作為CPCI總線上的master發(fā)起交易,又可作為CPCI總線上的slave響應(yīng)交易;而CPCI從設(shè)備接口芯片只可作為CPCI總線上的slave響應(yīng)交易;EEPROM用于存儲(chǔ)配置信息,當(dāng)外設(shè)卡上電時(shí),CPCI主/從設(shè)備接口芯片可以把EEPROM中的配置信息拷貝到它的配置首部寄存器空間;熱插拔控制電路主要負(fù)責(zé)外設(shè)卡上電與斷電的控制;應(yīng)用電路按照應(yīng)用需求設(shè)計(jì)。


    外設(shè)卡設(shè)計(jì)的關(guān)鍵是CPCI主/從設(shè)備接口芯片的選型。在眾多廠家生產(chǎn)的PCI芯片中,以美國(guó)PLX公司的主/從設(shè)備接口芯片最為齊全。鑒于我們的應(yīng)用是工業(yè)控制,考慮到性價(jià)比,PCI9030從設(shè)備接口芯片是不錯(cuò)的選擇。


    PCI9030芯片推薦使用支持序列讀功能的93 系列三線串口EEPROM,我們選用AT93C56A。EEPROM信息的更新除了使用專門的編程器外,還可以使用在線編程的方法實(shí)現(xiàn)。


    現(xiàn)在以PCI9030作為CPCI設(shè)備接口芯片,以LTC1643A作為熱插拔控制器,簡(jiǎn)單介紹外設(shè)卡插入底板的上電工作過程,而外設(shè)卡拔出底板的斷電工作過程與之相反。


    (1)首先,外設(shè)卡的孔式插座與底板最長(zhǎng)的電源、地信號(hào)針接觸,此時(shí)LTC1643A的ON#與PCI9030的BD_SEL#信號(hào)均被拉高,LTC1643A處于非工作狀態(tài),而PCI9030處于預(yù)充狀態(tài)。

    (2)接著,外設(shè)卡的孔式插座與底板的中長(zhǎng)信號(hào)針接觸,由于PCI9030處于預(yù)充狀態(tài),這樣外設(shè)卡與底板CPCI信號(hào)間的能源傳送減到最少。

    (3)最后,外設(shè)卡的孔式插座與底板的最短信號(hào)針BD_SEL#接觸,由于底板BD_SEL#信號(hào)針接地,所以LTC1643A的ON#與PCI9030的BD_SEL#信號(hào)均被拉低。此時(shí),PCI9030脫離預(yù)充狀態(tài),LTC1643A開始工作。LTC1643A控制3.3V 、5V、±12V上電,當(dāng)它檢測(cè)到3.3V、5V、±12V輸出均在誤差范圍內(nèi),它控制Power-Good#信號(hào)拉低,只要此時(shí)來自系統(tǒng)卡的PCI_RST#復(fù)位信號(hào)無效,那么PCI9030進(jìn)行復(fù)位。

    (4)當(dāng)PCI9030完成復(fù)位時(shí),一方面,它產(chǎn)生Local_RST_Out#復(fù)位信號(hào),從而控制應(yīng)用電路進(jìn)行復(fù)位;另一方面,如果它檢測(cè)到EEPROM存在,就把EEPROM中的配置信息拷貝到它的配置首部寄存器空間。當(dāng)PCI9030完成初始化,即可響應(yīng)來自系統(tǒng)卡的CPCI交易。

    (5)當(dāng)PCI9030檢測(cè)到卡已插入的狀態(tài),它通過ENUM#信號(hào)向系統(tǒng)卡產(chǎn)生中斷請(qǐng)求。系統(tǒng)卡確認(rèn)產(chǎn)生該中斷信號(hào)的外設(shè)卡,并調(diào)用它的驅(qū)動(dòng)安裝程序,達(dá)到對(duì)該外設(shè)卡所需內(nèi)存、I/O、中斷等資源的分配。最后,系統(tǒng)卡熄滅該外設(shè)卡的狀態(tài)指示燈,以表示它在線。


    4 平臺(tái)軟件設(shè)計(jì)

    由于該平臺(tái)是基于VxWorks操作系統(tǒng)設(shè)計(jì)的,總體的軟件框架如圖所示。



    現(xiàn)說明各部分軟件的功能。


    (1)BSP是介于平臺(tái)硬件與操作系統(tǒng)之間的板級(jí)支持包,使操作系統(tǒng)能夠獨(dú)立于平臺(tái)硬件。BSP的設(shè)計(jì)主要包括系統(tǒng)卡硬件的初始化,為操作系統(tǒng)提供中斷、時(shí)鐘服務(wù),完成外設(shè)驅(qū)動(dòng)程序的初始化。針對(duì)CPCI總線部分,在系統(tǒng)卡硬件初始化時(shí)包括對(duì)PCI9056主橋芯片進(jìn)行配置。為了實(shí)現(xiàn)對(duì)CPCI總線上設(shè)備的掃描,以及對(duì)CPCI設(shè)備進(jìn)行資源配置功能,必須要針對(duì)PCI9056主橋芯片編寫CPCI配置庫(kù)。


    (2)外設(shè)卡驅(qū)動(dòng)程序的設(shè)計(jì)主要針對(duì)外設(shè)卡實(shí)現(xiàn)的功能,按照CPCI設(shè)備驅(qū)動(dòng)程序的編寫規(guī)范,提供給應(yīng)用程序標(biāo)準(zhǔn)的接口函數(shù),從而實(shí)現(xiàn)對(duì)設(shè)備進(jìn)行安裝、打開、讀寫、控制、關(guān)閉、卸載的管理。


    (3)系統(tǒng)卡、外設(shè)卡中斷服務(wù)程序分別響應(yīng)系統(tǒng)卡、所有外設(shè)卡的熱插拔事件,主要把熱插拔事件告訴熱插拔服務(wù)程序,讓它代為處理。系統(tǒng)卡中斷服務(wù)程序的優(yōu)先級(jí)比外設(shè)卡中斷服務(wù)程序的要高,因?yàn)橄到y(tǒng)卡熱插拔事件所產(chǎn)生的系統(tǒng)狀態(tài)直接決定外設(shè)卡可使用的系統(tǒng)資源狀況。


    (4)熱插拔服務(wù)程序主要處理系統(tǒng)卡與外設(shè)卡中斷服務(wù)程序的請(qǐng)求,并優(yōu)先處理系統(tǒng)卡的請(qǐng)求?,F(xiàn)分別說明它如何處理來自系統(tǒng)卡、外設(shè)卡的熱插拔請(qǐng)求:

    (a)系統(tǒng)卡中斷服務(wù)請(qǐng)求處理

    當(dāng)系統(tǒng)卡請(qǐng)求插入時(shí),它只是熄滅系統(tǒng)卡的卡狀態(tài)指示燈,以提示用戶系統(tǒng)卡在線;當(dāng)系統(tǒng)卡請(qǐng)求拔出時(shí),它枚舉所有在線外設(shè)卡的卸載函數(shù),并使被卸載外設(shè)卡的卡狀態(tài)指示燈點(diǎn)亮,以提示用戶外設(shè)卡離線。

    (b)外設(shè)卡中斷服務(wù)請(qǐng)求處理

    當(dāng)外設(shè)卡請(qǐng)求插入時(shí),它枚舉所有請(qǐng)求插入的外設(shè)卡的安裝函數(shù),并使被安裝外設(shè)卡的卡狀態(tài)指示燈熄滅,以提示用戶該卡在線;當(dāng)外設(shè)卡請(qǐng)求拔出時(shí),它枚舉所有請(qǐng)求拔出的外設(shè)卡的卸載函數(shù),并使被卸載外設(shè)卡的卡狀態(tài)指示燈點(diǎn)亮,以提示用戶該卡離線。


    (5)外設(shè)卡應(yīng)用模塊是外設(shè)卡驅(qū)動(dòng)程序的使用者,它通過外設(shè)卡驅(qū)動(dòng)程序完成對(duì)外設(shè)卡中設(shè)備的讀寫、控制功能。


    5 結(jié)束語(yǔ)

    目前已將該CPCI平臺(tái)方案成功應(yīng)用于片式電子元件高速編帶機(jī)項(xiàng)目,不僅大大降低該產(chǎn)品的使用、維護(hù)和升級(jí)改造的費(fèi)用,還創(chuàng)造良好的經(jīng)濟(jì)效益。

    上一篇: 龍芯3A平臺(tái)Vxworks移植的研究和實(shí)現(xiàn)
    下一篇: 基于FPGA和DSP硬件電路設(shè)計(jì)
    ?
    版權(quán)所有 ? 西安航普電子有限責(zé)任公司 未經(jīng)許可

    嚴(yán)禁復(fù)制 陜ICP備08100257號(hào) 建站/推廣/維護(hù)/安全:西安利友科技

    安仁县| 沁阳市| 类乌齐县| 凤山市| 六安市| 广州市| 泸州市| 建水县| 新晃| 曲周县| 玉龙| 湟中县| 曲周县| 那曲县| 西充县| 遂川县| 尤溪县| 右玉县| 克什克腾旗| 固原市| 会同县| 河北省| 合川市| 永春县| 东源县| 安达市| 松潘县| 饶河县| 沾益县| 宁国市| 洪湖市| 永吉县| 万载县| 福建省| 信丰县| 安化县| 南华县| 弥勒县| 峨眉山市| 万全县| 寻甸|