王海霞
(天津外國語大學 國際傳媒學院,天津 300270)
PCI總線(peripheral component interconnect)俗稱外部部件互聯總線,是由美國Intel公司率先提出的一種先進的高性能局部總線,不依附于某個具體的處理器。比起ISA、EISA和MC等標準總線,更能滿足人們對微機系統I/O帶寬的要求。PCI總線的時鐘頻率為0~33 MHz,其最大數據傳輸速率可達到528 Mbps,PCI局部總線的引入,打破了數據傳輸的瓶頸,使數據的實時高速采集和傳輸成為可能[1]。CAN總線是一種全數字化、雙向和多主的現場總線,具有通信速率高、容易實現、且性價比高等優點,應用廣泛。
四通道CAN通訊卡介于核電現場I/O模塊和主站之間,是一塊基于PCI總線的高速數據采集卡。一塊通訊卡上有4個CAN通道,每個CAN通道連接32個單通道I/O模塊。每隔25ms采集I/O模塊的數據一次,通過CAN通訊接口傳送到微控制器80C196KB,經過處理后再通過8K*8的雙口RAM經由PCI總線控制器上傳給主機。主機對I/O模塊的初始化、對時等操作由80C196KB通過CAN通訊下傳到單通道I/O模塊。其具體的邏輯框圖如圖1所示。
根據核電站試驗數據采集系統的設計規范,該系統的數據采集總量為400個模擬量和112個開關量。每個采集模塊采集一個點,因而共有512個采集模塊,這些采集模塊分布在兩個機柜中。所有這些采集模塊的數據都是通過CAN總線分別傳送到數據采集柜中的兩臺數據采集計算機,進行量程轉換和相關處理,送到數據處理計算機。每臺數據采集計算機上有2塊4通道智能CAN總線通訊卡,即8條CAN總線通道,分別將兩個機柜的采集信號轉到數據采集計算機上進行處理,因而每根CAN總線傳送32個采集模塊的數據。
鑒于四通道CAN通訊卡的數據采集功能,該卡的工作流程是:CPU每隔25 ms(最小巡檢周期)掃描四條CAN總線上的128個采集模塊的數據,經過處理后送給PCI總線,最后到達數據采集計算機。
由于CAN卡的數據采集量比較大,根據掃描周期,對CPU而言,每秒鐘由CAN總線控制器產生的中斷有32*4*1 000/25=5 120個,則每個中斷之間的間隔為1 000 000/5120=195.3μs。這對于CPU提出了很高的要求。如采用一個80C196KB,由于其單指令周期為0.125μs,假設每個中斷服務指令需300條匯編指令,平均每條匯編需兩個單指令周期,即0.25μs,則每個中斷服務程序需300*0.25=75μs,占用這個中斷間隔的75/195.3=38.4%。這些數據表明即使處理速度滿足要求,CPU的資源也是比較緊張的。若采用兩個80C196KB,則每個CPU處理的中斷為5 120/2=2 560,每個中斷之間的間隔195.3*2=390.6μs,每個中斷服務程序時間占用這個中斷間隔的75/390.6=19.2%,這對每個CPU而言,就輕松多了。

圖1 四通道CAN通訊卡邏輯框圖Fig.1 The logic diagram of four channel CANcommunication card
根據上述分析,決定采用兩個CPU(分別稱為CPU和從CPU)。從CPU只負責采集兩個CAN通道數據,通過雙口RAM向主CPU發送采集的數據。主CPU不僅負責采集兩個CAN通道數據,還負責和PCI總線接口,將從CPU采集的數據和自身采集的數據一起向PCI總線傳輸。同時,主CPU接收到PCI總線上的命令字和數據后,還需通過雙口RAM將它們傳送給從CPU,以確保主、從CPU進行數據采集的一致性和完整性。
PCI總線控制器采用AMCC公司的S5920,S5920是符合PCI2.2規范的從方式接口控制器,他只能工作于從方式(slave)。Add-On 側有兩種工作方式:郵箱方式(MAILBOX)和直通方式 (PASS-THRU)方式。PASS-THRU方式又分PASSIVE和ACTIVE方式。根據各種方式的側重點不同,我們采用PASS-THRU的ACTIVE方式。它操作簡單,對時序要求較少,比較適合大量數據的傳輸。四通道CAN通訊卡的資源申請采用非易失性 RAM (NVRAM)---------串行EEPROM AT24C04來實現。
采用Intel的16位微控制器80C196KB,它是Intel公司性能最強的CMOS芯片,其片內集成有8路A/D轉換器,包括一個8通道多路模擬開關,采樣保持電路和10位A/D轉換器。與96系列微控制器相兼容,并增加了許多新功能。具有高速I/O子系統、中斷源及中斷向量顯著增加(28個中斷源,18個中斷向量)[2],可動態配置8位或16位總線寬度。
接口卡含有板級CPU總線和主站ISA總線。兩條總線通過8K*8的雙口RAM交換數據。通過雙口RAM,主站直接控制接口卡、并與其交換靜態數據,主站和接口卡協調的依據是郵箱命令[3]。雙口RAM的詳細內存地址分配如表1所示。

表1 雙口RAM數據區分配表Tab.1 Data area distribution table of dual port RAM
CAN控制線采用Philips公司的SJA1000,它與PCA82C200管腳兼容。具有擴展的接收緩沖器,64字節的FIFO結構,支持CAN2.0B協議。24 MHz晶振頻率下,傳輸速率高達1 Mbits/s。其內部結構如圖2所示。物理傳輸層采用EIA RS485,故采用高速光電隔離器件HCPL0611,保證電氣上無干擾,隔離電壓達到500 V以上,提高整個系統的測量精度。收發器采用Philips公司的PCA82C250芯片,其可以提供對總線數據的差動發送能力和對通信總線數據的差動接收能力。
譯碼電路采用ALTERA公司的EPM7128SCPLD。它具有高阻抗、電可擦等特點,可用門單元為2 500個,管腳間最大延遲5 ns,工作電壓5 V,輸入輸出線數84,并且它集邏輯譯碼、總線接口等于一體,十分方便。圖3為EPM7128S的功能邏輯框圖,其與PCI總線的連接示意圖如圖4所示。

圖2 SJA1000內部結構Fig.2 Internal structure of SJA1000

圖3 EPM7128S的功能邏輯框圖Fig.3 Functional logic diagram of EPM7128S

復位電路采用MAXIM公司的MAX823看門狗電路,如圖5所示,以它為核心可以完成以下幾項功
能:
1)上電和手動復位;
2)監視定時器(看門狗)復位。
單排兩針跨接器JP3、JP4分別用于2個80C196KB的電源監控和硬件看門狗復位。跨接表示允許看門狗復位,否則禁止看門狗復位。

圖5 看門狗電路Fig.5 Circuit of guard dog
在設計PCB時,我們采用Mentor Graphics公司的PADS2005軟件,它包括整個完整的PCB設計過程,涵蓋了從原理圖網表導入,規則驅動下的交互式布局布線,DRC/DFT/DFM檢查與分析,直至最終Gerber生產文件、裝配及物料清單輸出等全方位的功能需求[4]。良好的PCB設計不僅可以增加PCB的視覺美感,更能提高系統的抗干擾能力。在數據采集卡的PCB制作中,要考慮插卡的高頻性能、電源去耦與干擾的抑制、接地方式的選擇等因素。
在制作PCI板卡時,選擇制作四層的PCB板,其堆疊方式如圖6所示,這樣因使用了Power及Ground平面層,EMI之特性有很大改善。

圖6 四層板堆疊方式Fig.6 Stacked way of four layer board
由于一些高速信號,噪聲頻率比較高,我們采用0.1μF的電容作為去耦電容,并使之盡量靠近IC的電源地管腳,使其與電源和地之間形成的回路最短。對于從外部連接器進來的信號線使用的旁路電容,要靠近連接器放置,以減小外部連接線可能引入的干擾在板上傳播。
為了防止數字器件所帶來的高頻噪聲對模擬器件造成影響,將模擬信號的地與數字信號的地的走線分開,然后在PCB上找一個適當的位置將兩者單點連通。系統的模擬地和數字地的共地點一般選擇ADC芯片上引腳所需電流最大的地方,以便使大電流對地回流路徑最短,減少對模擬電路的電磁干擾,提高系統精度[5]。因為快速的數字振蕩可能將轉換噪聲禍合到模擬電源中,所以模擬電源和數字電源應該分開供電。在數據采集卡的設計中,模擬電路直接由DC一DC隔離電源供電,數字電源直接由PCI插槽中的+5 V和+3.3 V供電[6-8]。
PCI總線的32位部分的所有信號最大走線長度必須限定在1 500 mil以內,PCI時鐘信號線的長度必須是2 500 mil(±100 mil),并且只能和插卡上的一個負載連接。該引線只能在PCB一面走線且在轉角處用弧形,切忌用直角,銳角,可用“蛇”形走線來滿足長度要求[6]。
另外,對于電源線和地線的線寬,通常是地線比電源線窄,即:信號線<電源線<地線,信號線寬通常為:0.2~0.3 mm,電源線為1.2~2.5 mm。地線盡量采用大面積覆銅的方式來增大地線面積減小接地阻抗,提高電路板的抗干擾能力。
為了滿足高速數字信號的要求,PCB布線要求滿足盡量減少傳輸延遲、減少信號損耗等。數據采集板上PCI時鐘信號和AD采樣、鎖存、FIFO的讀和寫這些頻率較高的時鐘信號,應在PCB布線時在兩邊設置地線加以保護。
使用基于PCI總線的高速數據采集卡是現代信號處理中實現實時數據進機存儲的重要方法。本方法所設計實現的數據采集系統也可應用于通信振動工程、語音處理、工業自動控制以及生物醫學工程領域。目前我國的數字化儀控系統還處于初級階段,核電站數字化儀控系統的國產化是我國核電儀控事業發展的必由之路。該高速數據采集卡將應用在嶺澳核電站BOPLOT KDO/KME項目中,完成現場I/O模塊和控制站之間的數據傳輸,每隔25 ms采集一次數據,實現了高速度和低成本的優點。
[1]裴喜龍.基于PCI總線的高速數據采集卡系統設計與實現[J].微計算機信息,2006,22(7-1):129-131.PEI Xi-long.Design and implement of a high speed data acquisition card based on PCI Bus[J].Microcomputer Information,2006,22(7-1):129-131.
[2]黃瑤,余祖俊,趙愛菊.以80C196KB的一個數據采集分析儀[J].北方交通大學學報,1996,20(4):502-507.HUANG Yao,YU Zu-jun,ZHAO Ai-ju.A data acquisition analyzer based on 80C196KB[J].Journal of Northern Jiao tong University,1996,20(4):502-507.
[3]王海鵬.分布式控制系統PROFIBUS-DP總線主卡的設計[D].天津,南開大學,2004.
[4]王紀睿.印刷線路板焊盤和金手指自動光學檢測研究[D].武漢,華中科技大學,2012.
[5]孫波.基于PCI總線的高速數據采集卡的設計[D].成都,電子科技大學,2007.
[6]閆雷兵,田豐慶.基于PCI總線的數據采集卡設計[J].河南科技學院學報,2010,38(1):74-77.YAN Lei-bing,TIAN Qing-feng.Design of a data acquisition card based on PCI Bus[J].Journal of Henan Institute of Science and Technology,2010,38(1):74-77.
[7]溫彤,施偉鋒,張威,等.基于現場總線的微型電網監視裝置設計[J].陜西電力,2013(10):52-56.WENG Tong,SHI Wei-feng,ZHANG Wei,et al.Micro-grid monitoring device based on field bus[J].Shaanxi Electric Power,2013(10):52-56.
[8]李志堅,莫建麟.一種改進的基于概念格的數據挖掘算法[J].重慶師范大學學報:自然科學版,2014(4):92-95.LI Zhi-jian,MO Jian-lin.An improved concept lattice-based data mining algorithm [J].Journal of Chongqing Normal University:Natural Science,2014(4):92-95