王 兵 武 杰 張 杰
(中國科學技術(shù)大學近代物理系,中國科學院核探測技術(shù)與核電子學重點實驗室,物理電子學安徽省重點實驗室 合肥 230026)
基于ARM的通信接口測試系統(tǒng)的開發(fā)
王 兵 武 杰 張 杰
(中國科學技術(shù)大學近代物理系,中國科學院核探測技術(shù)與核電子學重點實驗室,物理電子學安徽省重點實驗室 合肥 230026)
分布式數(shù)據(jù)采集系統(tǒng)各子系統(tǒng)間的連接測試,需要專門的接口測試工具。隨著私有協(xié)議的廣泛使用,設備生產(chǎn)、維修中的調(diào)試測試問題也大大增加。這些問題往往無法使用傳統(tǒng)的通用協(xié)議測試儀器進行測試,本文提出一種由測試模塊加PC機方式構(gòu)成專用接口測試系統(tǒng)的開發(fā)策略,并且重點介紹基于ARM的測試模塊設計實現(xiàn)方法。文章分析了測試模塊的接口特性、基本結(jié)構(gòu)和軟件流程,隨后探討了其與PC組成測試系統(tǒng)的應用方法。實驗結(jié)果表明,該測試系統(tǒng)較好地滿足了專用接口測試需求。這種測試模塊加PC機構(gòu)成簡便系統(tǒng)的開發(fā)思路,為此類專用接口測試系統(tǒng)的快速開發(fā)提供了一種途徑。
分布式數(shù)據(jù)采集系統(tǒng),私有協(xié)議,高速數(shù)據(jù)傳輸協(xié)議,接口測試,ARM
分布式數(shù)據(jù)采集系統(tǒng)廣泛應用于核聚變實驗裝置、同步輻射裝置、核電站[1–3],也是軍事、勘探和工業(yè)測控技術(shù)的發(fā)展方向。這些系統(tǒng)一般分為數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)存儲、自動控制等若干模塊,各模塊通過事先定義的接口進行連接。在基于模塊的開發(fā)方式中,組成系統(tǒng)的各個模塊子系統(tǒng)分別獨立地并行開發(fā)。為保證各模塊間的互連互通,系統(tǒng)聯(lián)調(diào)前需要專門的測試工具,通過接口對各模塊進行測試。
這些采集系統(tǒng)都針對一些專門應用,現(xiàn)有的標準通信協(xié)議往往無法滿足它們的要求,也即這些系統(tǒng)的最優(yōu)化設計并非標準的通信協(xié)議,而是非標準的私有通信協(xié)議,并由此來定義系統(tǒng)各模塊的接口。對這些私有協(xié)議接口的測試,很難采用通用儀器,往往需要自行開發(fā)。
ARM 嵌入式芯片由于具有豐富的外圍接口,非常適于接口測試模塊的快速開發(fā)。本文介紹了利用ARM芯片快速開發(fā)專用接口測試模塊的設計思路和關(guān)鍵技術(shù),對接口測試系統(tǒng)的應用進行了討論。
分布式數(shù)據(jù)采集系統(tǒng)由多個節(jié)點構(gòu)成,每個節(jié)點單獨完成自己的數(shù)據(jù)采集和分析任務,采集節(jié)點間由通信線纜連接,進行串行通信,最終將采集數(shù)據(jù)上傳給主機。實時性是分布式數(shù)據(jù)采集系統(tǒng)的重點考慮問題,通行的做法是定義適合系統(tǒng)自身特點的高效精簡協(xié)議。
以我們研制的地震信號采集系統(tǒng)為例:根據(jù)應用要求和特點,定義了私有高速數(shù)據(jù)傳輸協(xié)議HDTP(High-speed Data Transfer Protocol)。HDTP 協(xié)議的數(shù)據(jù)和命令按以太網(wǎng)MAC幀封裝,格式如圖1所示。由圖1,HDTP協(xié)議對通行的網(wǎng)絡協(xié)議進行了大量精簡,幀內(nèi)封裝數(shù)據(jù)的有效數(shù)位比率也大大提高。
圖1 HDTP協(xié)議格式Fig.1 HDTP protocol format.
該系統(tǒng)連接各模塊節(jié)點間的傳輸大線(傳輸大線是地震儀器中對數(shù)據(jù)通信線纜的一種稱謂,一般由幾對雙絞線加保護外套構(gòu)成),分別由兩對雙絞線實現(xiàn)。傳輸大線的數(shù)據(jù)通道和命令通道是分離的,稱為上行通道和下行通道,采用不對等信號單向傳輸設計,其上行通道傳輸HDTP協(xié)議數(shù)據(jù)幀,下行通道傳輸HDTP協(xié)議命令幀。
系統(tǒng)中采用的協(xié)議一旦確定,則各模塊的接口也需要做相應的設計。接口一般可以劃分為若干子接口,子接口盡可能采用某種標準定義,這樣便于開發(fā),也便于獨立調(diào)試。擬開發(fā)的專用接口測試系統(tǒng)的接口規(guī)程必須根據(jù)需要測試的接口確定,其協(xié)議也要相匹配。
本文例子中,采集系統(tǒng)各節(jié)點對本地數(shù)據(jù)按HDTP協(xié)議進行封裝后向上級發(fā)送,收到上級節(jié)點命令進行解析后給予響應。上行通道采用 100M MII(Medium Independent Interface),下行通道采用RS232。因此,待測節(jié)點接口中主要包含 MII和RS232子接口。
媒體獨立接口MII是IEEE802.3u規(guī)定的與介質(zhì)無關(guān)的接口,負責 MAC和以太網(wǎng) PHY之間的通信[4]。MII接口一共有16根信號線,可以分成發(fā)送信號線、接收信號線以及網(wǎng)絡狀態(tài)信號線三組。
發(fā)送信號線由發(fā)送時鐘 TX_CLK、數(shù)據(jù)線TXD[3:0]、發(fā)送使能TX_EN和發(fā)送錯誤TX_ER組成。接收信號線由接收時鐘 RX_CLK、數(shù)據(jù)線RXD[3:0]、接收有效 RX_DV和接收錯誤 RX_ER組成。任何數(shù)據(jù)幀收發(fā)前,以同步位‘0x5D’為引導,圖2給出了MII接口的收發(fā)時序,其工作速率可達100 Mbps。
圖2 MII時序Fig.2 MII timing.
RS232接口是 DTE(數(shù)據(jù)終端設備)和 DCE(數(shù)據(jù)通信設備)之間的一個接口,來源于串行通信的國際標準。數(shù)據(jù)收發(fā)分開,支持全雙工。在短距離(<15 m)較低波特率串行通信中得到廣泛應用。信號線的電壓均為負邏輯關(guān)系,不使用對方的傳送控制信號時,僅需“發(fā)送數(shù)據(jù)”、“接收數(shù)據(jù)”和“信號地”三條接口線。
需開發(fā)的專用接口測試系統(tǒng)設計要求為:接口匹配待測節(jié)點接口硬件規(guī)范;對待測節(jié)點下達各種命令,接收并識別待測節(jié)點上傳的數(shù)據(jù)。所謂識別命令和正確接收數(shù)據(jù),即測試系統(tǒng)對收到的命令和數(shù)據(jù)具有協(xié)議解析能力;所謂下達命令和發(fā)送測試數(shù)據(jù),即測試系統(tǒng)具有數(shù)據(jù)封裝能力。測試系統(tǒng)還應該能正確保存部分接收數(shù)據(jù)供進一步分析。
為快速設計實現(xiàn)這一測試工具,我們提出一種由接口測試模塊加上PC機共同構(gòu)成簡便高效的專用接口測試系統(tǒng)的實現(xiàn)方法。此方法充分利用了PC機強大的計算能力和豐富的軟件資源,可大大簡化對測試模塊的硬件要求。
我們選取支持上述接口的芯片搭建測試模塊的電路,同時在軟件上實現(xiàn)協(xié)議解析和轉(zhuǎn)換。ARM微處理器集成度高,軟件支持好。利用ARM集成的強大片內(nèi)外圍接口電路,輔以必要的外圍芯片,加上針對具體應用的軟件,便形成一個簡便高效的嵌入式系統(tǒng),可快速實現(xiàn)專用接口測試所需的各項功能[5]。
選用Samsung公司的芯片S3C4510B,這是一款基于以太網(wǎng)應用的高性價比處理器,內(nèi)含一個低功耗的16/32位ARM7TDMI RISC處理器核,支持2個UART通道和1個以太網(wǎng)MAC控制器。由于以太網(wǎng)MAC控制器,支持100M MII和帶緩沖的DMA接口(Buffered DMA Interface, BDI),因此特別適合高速數(shù)據(jù)的通信。
構(gòu)成接口測試模塊的外圍器件主要有:Flash存儲器 AM29LV160DB90EC、SDRAM 芯片MT48LC4M32B2-7G、串口芯片MAX3232E。系統(tǒng)選擇 10 MHz的有源晶體振蕩器,其頻率經(jīng)過S3C4510B內(nèi)部PLL電路倍頻后,最高可達50 MHz。圖3為接口測試模塊示意圖。
接口測試模塊通過排線接口管腳與待測節(jié)點接口的管腳相互連接。由于接口測試模塊只利用S3C4510B的MII接收數(shù)據(jù),故排線與待測節(jié)點只連接8根接收信號線。S3C4510B有兩個RS232接口,其中一個用于與上位PC機的通信,采用DB-9連接器;另一個用于與待測節(jié)點的命令交換,只使用RXD、TXD、GND三根信號線。
圖3 測試模塊示意圖Fig.3 Schematic diagram of the testing module.
命令通道采用UART協(xié)議,字符格式為1個起始位,8個數(shù)據(jù)位,1個停止位。傳輸時還采用了HDLC封裝。協(xié)議幀封裝時,為了不把數(shù)據(jù)中出現(xiàn)的協(xié)議字符當成幀頭或幀尾,確保幀的完整性,采用數(shù)據(jù)轉(zhuǎn)義的辦法。在接收時逐個檢查數(shù)據(jù)內(nèi)容,當遇到協(xié)議字符0x7E時,連續(xù)傳送2個字符:0x7D和0x5E,以實現(xiàn)協(xié)議字符的轉(zhuǎn)義;當遇到轉(zhuǎn)義字符0x7D時,連續(xù)傳送2個字符:0x7D和0x5D,以實現(xiàn)轉(zhuǎn)義字符的轉(zhuǎn)義。
協(xié)議解析就是要根據(jù)協(xié)議幀格式,去除幀封裝時的幀頭幀尾標志和填充的各種控制字符,將幀中所封裝的數(shù)據(jù)信息部分按照測試的需要格式配置輸出[6]。
為提高測試模塊的硬件響應速度,其軟件直接由啟動代碼和應用程序兩部分構(gòu)成。這些代碼編譯成映像文件后,經(jīng)JTAG口燒寫到Flash芯片中。
啟動代碼的功能:CPU的初始化和內(nèi)存重映射。將Flash連接到ROMCON0處,這樣上電復位時讀的第一條指令是Flash的0x00000000處的值,首先進行ROM和SDRAM的初始化,設置各個部件的時鐘和片選。將BootLoader拷貝到SDRAM中,然后在SDRAM運行程序。
應用程序是針對具體測試要求而設計的,在程序前部首先要進行硬件寄存器初始化、棧指針初始化、數(shù)據(jù)區(qū)初始化等工作,此時可以設置RS232的波特率,然后再調(diào)入主程序語句。該接口測試模塊的軟件主要實現(xiàn)MII接口數(shù)據(jù)的接收和兩個RS232接口的命令收發(fā),輔以數(shù)據(jù)的識別、封裝、轉(zhuǎn)換等功能。MII接收數(shù)據(jù)幀實現(xiàn)是整個軟件中相對復雜的部分。
通過MII接口接收一個完整的數(shù)據(jù)幀,包含以下五個部分[7]:幀間隔、前導段、幀起始符 SFD、數(shù)據(jù)以及幀結(jié)束符。其中幀起始符的比特序列為10101011,可以通過尋找“0x5D”這個關(guān)鍵字來判斷幀的起始,主要流程如圖4。
圖4 MII數(shù)據(jù)接收流程圖Fig.4 MII data receiving process.
利用 ARM 的豐富接口資源可使設計工作簡化,還可充分利用PC機的軟件資源以最大限度地發(fā)揮測試模塊的能力,是快速實現(xiàn)專用接口測試系統(tǒng)的關(guān)鍵。接口測試模塊在系統(tǒng)中的位置如圖5所示,測試模塊通過排線與待測節(jié)點接口連接,串口接PC機。實際上由接口測試模塊與PC機共同搭建了一個非常靈活的簡便測試系統(tǒng)。用戶可在PC機上利用串口調(diào)試助理軟件編排各種測試命令,方便地與測試模塊進行雙向通信,進行顯示控制和交互操作。用戶通過PC機串口發(fā)送采集命令給接口測試模塊,接口測試模塊再通過專用接口中的RS232將采集命令發(fā)送給待測節(jié)點,待測節(jié)點通過傳輸大線向兩邊的仿真節(jié)點轉(zhuǎn)發(fā)命令。兩個仿真節(jié)點收到采集命令后分別產(chǎn)生固定個數(shù)的測試數(shù)據(jù)幀,以設定速率向通過傳輸大線發(fā)送給待測節(jié)點,待測節(jié)點將這些測試數(shù)據(jù)幀通過專用接口中的MII接口傳給測試模塊。
圖5 測試示意圖Fig.5 Testing scheme.
實際測試過程如下:
數(shù)據(jù)幀測試:仿真節(jié)點向待測節(jié)點發(fā)送測試數(shù)據(jù)幀,待測節(jié)點接收后通過專用接口向測試模塊上傳。測試模塊的ARMS3C4510B中的MAC控制器,以 DMA操作將收到的測試數(shù)據(jù)幀存儲到本地SDRAM 中,同時進行接收幀數(shù)量統(tǒng)計工作,統(tǒng)計結(jié)果通過串口發(fā)送給上端PC機。測試數(shù)據(jù)全部接收完畢后,測試模塊還可將保存在SDRAM中的數(shù)據(jù)幀通過串口上傳給PC機,做進一步離線校驗分析。如果校驗通過就驗證了待測節(jié)點能正確處理并發(fā)送數(shù)據(jù)。
命令幀測試:測試命令通過RS232接口排線下傳給待測節(jié)點,經(jīng)待測節(jié)點轉(zhuǎn)換后,廣播發(fā)送,左、右端仿真節(jié)點進行接收。通過對命令內(nèi)包含的地址和指令內(nèi)容進行判別,仿真節(jié)點給出相應的響應(在數(shù)據(jù)通道正常情況下,也可由仿真節(jié)點生成反饋信息經(jīng)數(shù)據(jù)通道返回測試模塊)。
按照上述測試方法,我們設定兩端仿真節(jié)點以不同的數(shù)據(jù)率產(chǎn)生測試數(shù)據(jù)幀,對待測節(jié)點進行了多次接口測試實驗。測試結(jié)果表明,在兩邊仿真節(jié)點以40 Mbps速率發(fā)送測試數(shù)據(jù)幀的情況下,測試模塊仍能夠正確接收這80 Mbps的數(shù)據(jù);測試模塊通過RS232向PC機轉(zhuǎn)發(fā)數(shù)據(jù),在9600、19200和38400波特率(仿真節(jié)點發(fā)送數(shù)據(jù)率低于轉(zhuǎn)發(fā)速度)下,連續(xù)40 h測試均正確上傳數(shù)據(jù)。由測試模塊加PC機共同構(gòu)成的簡便測試系統(tǒng)可以用較低成本較好地滿足專用接口測試的需要。
本文介紹的專用接口測試系統(tǒng),在大型地震信號采集系統(tǒng)樣機的研制、測試、聯(lián)調(diào)及后期維護中發(fā)揮了重要作用。隨著采用私有協(xié)議接口的數(shù)據(jù)采集系統(tǒng)和測控系統(tǒng)的大量應用,設備生產(chǎn)、維修中的調(diào)試問題也大大增加,接口測試系統(tǒng)成為一個必備的測試工具。如何為不同接口快速開發(fā)出專用測試系統(tǒng),是常須面對的問題。ARM 芯片外圍接口全、軟件資源豐富、價格便宜、功能穩(wěn)定,便于開發(fā)出針對性很強的接口測試模塊。本文開發(fā)的基于ARM的測試模塊,實現(xiàn)了收包、發(fā)包、下達命令、幀統(tǒng)計等功能。若系統(tǒng)的私有協(xié)議發(fā)生改變,則可修改軟件使該模塊對新協(xié)議具有解析能力,靈活方便。這種模塊加PC構(gòu)成簡便系統(tǒng)的開發(fā)思路具有一定的通用性,為專用接口測試系統(tǒng)的快速開發(fā)提供了一條解決途徑。
1 王喜鵬, 陳灼民, 錢靜, 等. 微計算機信息, 2005,21(10-1): 78–80
WANG Xipeng, CHEN Zhuomin, QIAN Jing,et al.Control & Automation, 2005, 21(10-1): 78–80
2 Li W M, Li J Y, Liu G F,et al. EPICS at NSRL [C].Proceedings of the 2ndAsian Particle Accelerator Conference, 2001. 678–680
3 徐慧, 黃文君, 江竹軒, 等. 核動力工程, 2006, 27(4):93–96
XU Hui, HUANG Wunjun, JIANG Zhuxuan,et al.Nuclear Power Engineering, 2006, 27(4): 93–96
4 IEEE Computer Society, IEEE std 802.3TM-2005.SECTION TWO, 9–59
5 Fang Y J, Hu J. Development of Innovative Electrical Parameter Measuring Instrument with Net Link Access Based on ARM and uClinux. International Conference on Information Acquisition, 2004. 168–171
6 Von Gordon A F J, Hancke G P. Protocol conversion for real-time energy management systems. Factory Communication Systems, 2004. Proceedings. 2004 IEEE International Workshop on 22–24 Sept. 2004, 319–322
7 IEEE Computer Society, IEEE std 802.3TM-2005.SECTION ONE, 83–89
CLCTP274.+2
Development of a communication interface testing system based on ARM
WANG Bing WU Jie ZHANG Jie
(Fast Electronics Lab, University of Science and Technology of China, Hefei 230026, China)
As the use of private protocols becomes popular in distributed data acquisition system, it is urgent to test interfaces of these systems. The interfaces cannot be tested by general communication protocol testing equipments, so a simple strategy of how to develop an efficient custom interface testing system with a testing module based on PC is proposed. In this paper, we focus on the design and implementation of how to realize an interface testing module based on ARM. Analyses of the interface characteristics, basic structure and software processes of the interface testing module, and application method of interface testing with the PC and the interface testing module, are discussed.Experimental results show that the custom interface testing system well meets the testing requirements. This proposes a way to do a rapid development of custom interface testing systems.
Distribution data acquisition system, Private protocol, High-speed data transfer protocol, Interface testing, ARM
TP274.+2
國家重大科技專項(2008ZX05008-005-004)資助
王 兵,男,1968年出生,博士研究生,研究方向:高速數(shù)據(jù)采集及嵌入式系統(tǒng)
2009-10-09,
2009-11-16