• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于CPLD的X86系統(tǒng)硬件檢測卡設(shè)計(jì)

      2014-09-06 10:51:08李春雨夏敏磊
      電子器件 2014年6期
      關(guān)鍵詞:波特率寄存器串口

      李春雨,夏敏磊

      (浙江機(jī)電職業(yè)技術(shù)學(xué)院,杭州 310053)

      ?

      基于CPLD的X86系統(tǒng)硬件檢測卡設(shè)計(jì)

      李春雨*,夏敏磊

      (浙江機(jī)電職業(yè)技術(shù)學(xué)院,杭州 310053)

      X86處理器價(jià)格高,一旦出現(xiàn)故障會(huì)導(dǎo)致電子產(chǎn)品出現(xiàn)各種異常且定位困難。提出一種基于CPLD的X86系統(tǒng)硬件檢測卡,當(dāng)X86處理器出現(xiàn)故障時(shí),將通往IO 80端口地址的上電自檢數(shù)據(jù)通過CPLD轉(zhuǎn)成串行數(shù)據(jù)輸出。該方法不需要PCI硬件插槽,節(jié)省PCB空間840 mm2,不需要外置硬件debug卡,降低硬件成本,提高X86系統(tǒng)故障定位效率,方案可實(shí)施性強(qiáng),尤其在高密度電子產(chǎn)品上具有很強(qiáng)的推廣價(jià)值。

      X86系統(tǒng);硬件故障定位;CPLD;檢測;PCI;串口

      Intel X86處理器因其性能穩(wěn)定,高效,在桌面平臺(tái)應(yīng)用十分廣泛,近年來隨著X86功耗的降低,該處理器在小型化,高密度的移動(dòng)終端,小型交換機(jī),電信級(jí)服務(wù)器,企業(yè)服務(wù)器,媒體網(wǎng)關(guān)等中使用越來越廣泛。當(dāng)在BIOS啟動(dòng)過程中,如果自檢失敗,屏幕或者串口無任何顯示,故障診斷和排除無任何線索,導(dǎo)致定位時(shí)間長,單板報(bào)廢率高。因此提高小型X86系統(tǒng)中CPU故障定位技術(shù)是縮短MTTR(Mean Time To Repair)的關(guān)鍵。

      1 X86系統(tǒng)的故障

      X86系統(tǒng)上電后,在BIOS(基本輸入輸出系統(tǒng))的控制下,在主板BIOS的引導(dǎo)下,進(jìn)行上電自檢POST(Power On Self Test),進(jìn)行上電自檢時(shí)會(huì)向CPU的80端口發(fā)出一系列的碼字,即POST CODE,碼字和相應(yīng)功能的測試是對應(yīng)的,如果測試成功,BIOS會(huì)發(fā)出下一項(xiàng)POST CODE,如果計(jì)算機(jī)系統(tǒng)存在硬件故障,就會(huì)停止在當(dāng)前的測試項(xiàng)。POST自檢過程大致包含:上電、CPU、ROM、System Clock、DMA、IRQ、串并口、顯卡等,檢測顯卡以前的任何部件有問題,計(jì)算機(jī)都將處于掛起狀態(tài),系統(tǒng)將給出提示信息,輸出硬件偵錯(cuò)碼信息,如POST CODE停止在“9”,代表ROM校驗(yàn)失敗[1]。檢測完顯卡后,計(jì)算機(jī)將對其余的內(nèi)存、軟硬盤驅(qū)動(dòng)器、鍵盤、即插即用設(shè)備、CMOS設(shè)置等進(jìn)行檢測,并在屏幕上顯示各種信息和出錯(cuò)報(bào)告。在這期間檢測到的故障,不會(huì)影響開機(jī)。此時(shí)如果有不正常的設(shè)備,就會(huì)提示用戶選擇是繼續(xù)進(jìn)行還是重新啟動(dòng)計(jì)算機(jī);如果一切正常,計(jì)算機(jī)將按BIOS中設(shè)定的系統(tǒng)啟動(dòng)驅(qū)動(dòng)器,裝載引導(dǎo)程序啟動(dòng)系統(tǒng)。

      2 現(xiàn)有的X86系統(tǒng)硬件檢測方案

      在基于X86處理器的臺(tái)式機(jī)中,POST自檢失敗,會(huì)通過喇叭發(fā)出告警提示音[2],由于故障種類繁多,聲音識(shí)別度低,此種方法使用較少。第2種方法是POST自檢時(shí),會(huì)輸出硬件偵錯(cuò)碼信息,即POST碼,每個(gè)碼字對應(yīng)一種故障類型,該碼從X86處理器IO端口的80端口輸出,當(dāng)在檢測過程中發(fā)現(xiàn)故障,就停留在發(fā)生故障處,通過X86系統(tǒng)的總線接口[3],如PCI接口或者ISA接口擴(kuò)展一個(gè)硬件偵錯(cuò)卡將POST碼顯示出來,這種硬件檢測卡也叫80卡。

      圖1 目前主流X86系統(tǒng)硬件檢測卡框圖

      其缺點(diǎn)是PCI總線接口多,32 bit PCI總線120個(gè)引腳,PCI插槽占用PCB空間太多。

      3 基于CPLD的X86系統(tǒng)硬件檢測改進(jìn)方案

      3.1 改進(jìn)方案介紹

      在實(shí)際應(yīng)用中,PC和X86單板都是通過串口進(jìn)行通信,如通常的PCI轉(zhuǎn)串口邏輯就是識(shí)別PCI總線的地址是否是0x3f8,如是,就將PCI總線的數(shù)據(jù)通過串口打印出來。那么借鑒這個(gè)思路,判斷PCI總線的地址是否是硬件檢測代碼輸出端口地址0x80,如是,就將PCI數(shù)據(jù)總線上的數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)輸出,輸出的串行數(shù)據(jù)符合UART協(xié)議,利用這個(gè)轉(zhuǎn)換邏輯實(shí)現(xiàn)一個(gè)X86硬件故障檢測卡。實(shí)現(xiàn)框圖如圖2所示。

      圖2 基于CPLD的故障檢測卡

      本方案中橋片選用INTEL的3100芯片[4],CPLD采用Lattice的LCMXO2280,RS232電平轉(zhuǎn)換芯片使用MAX232,CPLD實(shí)現(xiàn)數(shù)據(jù)的并串轉(zhuǎn)換,將PCI端口的并行數(shù)據(jù)轉(zhuǎn)換成波特率為9 600 bit/s的串行數(shù)據(jù),通過串口輸出,連接到上位計(jì)算機(jī),CPLD轉(zhuǎn)換的串口成為一個(gè)X86故障檢測輸出端口,CPLD輸出的是3.3 V的TTL電平,MAX232的作用是實(shí)現(xiàn)電平轉(zhuǎn)換,將3.3 V電平轉(zhuǎn)換成+/- 10 V RS232電平,完成計(jì)算機(jī)的串口通信。

      本方案的優(yōu)點(diǎn),PCI總線不再采用PCI卡槽,通過PCB走線,大大節(jié)省空間,不再外接硬件故障檢測卡,只需接一根串口線,節(jié)省成本,操作方便。

      3.2 代碼實(shí)現(xiàn)

      CPLD代碼采用Verilog[5]語言實(shí)現(xiàn),該代碼模塊框圖如圖3所示。

      圖3 CPLD內(nèi)部邏輯模塊框圖

      該模塊可以分成兩大部分,模塊1完成PCI總線到本地總線(Localbus)的轉(zhuǎn)換,模塊2實(shí)現(xiàn)本地總線到硬件檢測卡模塊的轉(zhuǎn)換。PCI,本地總線都是并行總線,TxData是串行數(shù)據(jù),因此模塊2的主要功能就是當(dāng)判斷PCI總線的訪問地址是IO端口0x80后,將發(fā)往0x80的硬件檢測信息由并行數(shù)據(jù)轉(zhuǎn)換成UART格式的串行數(shù)據(jù)輸出。

      3.2.1 PCI轉(zhuǎn)換模塊實(shí)現(xiàn)

      PCI轉(zhuǎn)換模塊完成PCI總線和Localbus總線的轉(zhuǎn)換,其實(shí)現(xiàn)框圖如圖4所示。

      圖4 PCI總線轉(zhuǎn)Localbus邏輯模塊框圖

      PCI總線數(shù)據(jù)地址復(fù)用,共32根數(shù)據(jù)線,在FRAME信號(hào),IRDY,TRDY信號(hào)控制下區(qū)分是地址周期還是數(shù)據(jù)周期[6]。Localbus總線地址和數(shù)據(jù)總線分開,可以根據(jù)用戶需求自己配置寬度,如地址總線BKEND_ADDR設(shè)置16根,數(shù)據(jù)總線設(shè)置BKEND_DAT設(shè)置8根,80 card_cs是檢測端口的片選信號(hào),Base_region1_l是其他外設(shè)片選信號(hào),檢測端口片選信號(hào)產(chǎn)生部分代碼如下:

      Assign 80 card_cs=(ADDR[15:0]==16’h80)?1’b1:1’b0;

      當(dāng)CPU通過南橋的PCI總線對內(nèi)存空間進(jìn)行讀寫時(shí),當(dāng)本地總線輸出的地址為0xF000_0080時(shí),即對檢測端口進(jìn)行訪問,硬件檢測卡模塊片選有效,在寫信號(hào)data_write_l的配合下,轉(zhuǎn)換裝置中的PCI總線將數(shù)據(jù)總線連接到檢測單元的數(shù)據(jù)輸入寄存器,再根據(jù)根據(jù)相應(yīng)寄存器的配置參數(shù),實(shí)現(xiàn)數(shù)據(jù)的通信。

      3.2.2 本地總線數(shù)據(jù)并串轉(zhuǎn)換模塊實(shí)現(xiàn)

      圖5 本地總線數(shù)據(jù)轉(zhuǎn)換模塊

      圖8 程序仿真波形

      TxData數(shù)據(jù)符合通用異步數(shù)據(jù)收發(fā)器UART(Universal Asynchronous Receiver Transmitter)格式,異步通信不要求收發(fā)雙方使用共同時(shí)鐘,一幀信息由4部分組成:起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位[7]。

      由于BIOS將硬件檢測信息發(fā)往80端口,因此邏輯只要實(shí)現(xiàn)單工發(fā)送模塊,將檢測信息通過串口送往PC。

      (1)地址解碼模塊:該模塊包含兩部分功能:①寄存器讀寫,如發(fā)送數(shù)據(jù)保持寄存器0x80,本地總線要發(fā)送的數(shù)據(jù)直接送往0x80地址;線控制寄存器0x83[8],鑒于本設(shè)計(jì)只是實(shí)現(xiàn)硬件檢測功能,當(dāng)硬件發(fā)生故障時(shí),串口通常沒有初始化,不能配置寄存器,因此0x83寄存器默認(rèn)值是0 x 03,即發(fā)送數(shù)據(jù)位長度為8,無奇偶校驗(yàn),停止位長度為1。②波特率發(fā)生,波特率默認(rèn)9 600 bit/s,該模塊產(chǎn)生波特率16倍的時(shí)鐘clk_16x。

      (2)發(fā)送FIFO:由于PCI總線速率33 MHz,UART速率較低,為了避免數(shù)據(jù)丟失,邏輯內(nèi)實(shí)現(xiàn)了一個(gè)存儲(chǔ)長度為32 byte的發(fā)送FIFO(先進(jìn)先出),將發(fā)送保持寄存器0x80的數(shù)據(jù)緩存到FIFO中。FIFO的接口圖如圖6所示。

      圖6 發(fā)送fifo接口圖

      (3)發(fā)送模塊:在clk_16x時(shí)鐘控制下,將從發(fā)送FIFO讀出的并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù),根據(jù)UART協(xié)議,發(fā)送時(shí)先發(fā)送起始位,8個(gè)數(shù)據(jù)位,一位停止位,邏輯代碼里通過狀態(tài)機(jī)實(shí)現(xiàn),狀態(tài)機(jī)狀態(tài)遷移圖如圖7所示。基于Altera7.1仿真波形如圖8所示。

      圖7 檢測數(shù)據(jù)發(fā)送狀態(tài)機(jī)

      上述波形中,Data_in是從發(fā)送FIFO讀出的數(shù)據(jù),TxData是按照9 600波特率轉(zhuǎn)換出來的串行數(shù)據(jù),sample是波特率16倍時(shí)鐘,仿真波形證明當(dāng)PCI總線訪問IO 0x80端口時(shí),可以實(shí)現(xiàn)數(shù)據(jù)的串行輸出。

      4 結(jié)論

      使用基于CPLD在線X86系統(tǒng)硬件檢測方案,不需要在單板上設(shè)計(jì)封裝大的PCI插槽支持外部的硬件檢測卡,120引腳的PCI插槽在PCB板上的封裝大小8.4 cm×1 cm,在目前主流的開放式電信架構(gòu)MTCA(Micro Telecommunications Computing Architecture)[9]中規(guī)定單板尺寸13.8 cm×18 cm,PCI插槽占用的空間達(dá)到3%。而本方案只需利用單板上的CPLD將并行數(shù)據(jù)轉(zhuǎn)成串行的txData,通過串口送出。該方案在基于INTEL 3100開發(fā)板上已經(jīng)驗(yàn)證通過,且該方案并不局限于本文所提到的器件,可以應(yīng)用于各系列X86芯片中,具有很高的實(shí)用價(jià)值。

      [1]Sathish Venkataramani. Embedded Intel?Architecture Board Bring Up Procedure[EB/OL]. http://www. intel. cn,2009,8:12-13.

      [2]Intel?Server Board SE7210TP1-E Technical Product Specification[EB/OL]. http://www. intel. com 2012,10:102-102.

      [3]Intel,AtomTMProcessor Z36xxx and Z37xxx Series Datasheet(Volume 1 of 2)[EB/OL]. http://www.intel.com,2013.

      [4]Intel?3100 Chipset for Intel?CoreTM2 Duo Processors,Intel?CoreTMDuo Processors and Intel?Celeron?M Processors on 65 nm[EB/OL]. http://www.intel.com,2012.

      [5]王靜霞. FPGA/CPLD應(yīng)用技術(shù)(Verilog語言版)[M]. 北京:電子工業(yè)出版社,2011:86-102.

      [6]程鵬,劉維亞,鄭喜鳳. 基于FPGA的PCI總線接口設(shè)計(jì)[J]. 電子器件,2007,30(2):717-720.

      [7]張羽,胡玉貴,殷奎喜,等. 基于FPGA的多串口擴(kuò)展實(shí)現(xiàn)[J]. 電子器件,2009,32(1):233-236.

      [8]Lattice,Universal Asynchronous Receiver/Transmitter[EB/OL]. http://www.latticesemi.com,2009.

      [9]PCI Industrial Computers Manufacturers Group MTCA. 0 Revision 1. 0 MicroTCA?[S]http://www. picmg. org.

      李春雨(1976-),女,漢族,黑龍江五常人,2002年于同濟(jì)大學(xué)獲信號(hào)與信息處理專業(yè)碩士學(xué)位,現(xiàn)為浙江機(jī)電技術(shù)學(xué)院電氣電子學(xué)院教師,主要研究方向電子設(shè)計(jì),通信系統(tǒng),rain668@hotmail.com;

      夏敏磊(1973-),女,碩士研究生,副教授,主要研究方向?yàn)殡娮釉O(shè)計(jì)。

      HardwareDebugCardofX86SystemBasingCPLD

      LIChunyu*,XIAMinlei

      (Zhejiang Institute of Mechanical and Electrical Engineering,Hangzhou 310053,China)

      The X86 processor is expensive,its failure will lead to various abnormal phenomenon,and it is difficult to solve. This paper proposes a X86 system hardware detection card based on CPLD,it converts parallel data into serial data through CPLD when the X86 processor is failure. The method need not be additional PCI slot,it saves PCB board space 840 mm2,and need not set the hardware debug card,so it reduces the hardware cost,and improves the fault location X86 system efficiency. The project implementation is especially strong in high density electronical product.

      X86 system;hardware failure fixed;CPLD;debug;PCI;serial port

      2013-04-10修改日期:2013-05-12

      TN79

      :A

      :1005-9490(2014)06-1168-04

      10.3969/j.issn.1005-9490.2014.06.032

      猜你喜歡
      波特率寄存器串口
      淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
      CAN 總線波特率自適應(yīng)程序設(shè)計(jì)
      智能制造(2020年5期)2020-07-03 06:24:00
      Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
      基于FPGA的異步串行通信波特率容錯(cuò)設(shè)計(jì)
      電子測試(2018年7期)2018-05-16 06:27:18
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      USB接口的多串口數(shù)據(jù)并行接收方法探索
      基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無線通信
      地礦測繪(2015年3期)2015-12-22 06:27:26
      基于并行控制的FPGA多串口拓展實(shí)現(xiàn)
      C*Core芯片SCI串口波特率容限優(yōu)化
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      龙口市| 德令哈市| 阿克苏市| 中方县| 定兴县| 天等县| 航空| 安徽省| 剑阁县| 论坛| 铁岭市| 遂宁市| 武隆县| 革吉县| 土默特左旗| 秦安县| 大城县| 桐庐县| 桑植县| 宜州市| 理塘县| 偏关县| 普兰店市| 伊川县| 辽阳县| 巨野县| 泌阳县| 民县| 随州市| 临清市| 曲阜市| 芜湖市| 宜川县| 阳山县| 安乡县| 巴彦县| 昔阳县| 玛曲县| 常德市| 云和县| 裕民县|