文獻標識碼: B
文章編號: 0258-7998(2010)10-0022-03
在測試飛行控制組件時,,遙測接收設備離信息處理中心較遠,,而被測數(shù)據(jù)量又極大,如果采用傳統(tǒng)的專線傳輸遙測數(shù)據(jù),,則傳輸時間需幾個小時,,無法滿足快速處理的要求。因此,,需要研制一種協(xié)議轉換器,用來完成被測數(shù)據(jù)無損,、實時,、遠距離地與遠程上位機進行通信,并能接收上位機的控制指令,實現(xiàn)工作狀態(tài)的遠程交互,,而測試人員通過上位機的人機界面就可以完成所有測試,。
1 系統(tǒng)組成及工作原理
考慮到系統(tǒng)實時性和可靠性的要求,選擇以太網(wǎng)口作為協(xié)議轉換器與遠程上位機的數(shù)據(jù)轉發(fā)接口,、以高速串口作為控制口的通信方式,,采用DSP+ARM架構的硬件解決方案。系統(tǒng)框圖如圖1所示,?;竟ぷ髟恚篎PGA作為數(shù)據(jù)預處理器,完成并行數(shù)據(jù)到串行數(shù)據(jù)的轉換等數(shù)據(jù)預處理任務,;DSP讀取FPGA處理后的數(shù)據(jù)并完成數(shù)據(jù)壓縮,;ARM作為中央處理控制器,主要從DSP系統(tǒng)中讀取已經(jīng)編碼的數(shù)據(jù)并通過以太網(wǎng)完成與上位機實時通信的任務,。上位機按照數(shù)據(jù)傳輸協(xié)議,、產(chǎn)品的數(shù)據(jù)遙測協(xié)議解調出各類物理變量,記錄并存儲,。測試人員通過上位機完成工作狀態(tài)的遠程設置與查詢信息交互的任務,。
2 硬件設計
2.1 TMS320C6416及其外圍電路設計
DSP芯片選用TI公司的TMS320C6416。這是TI公司推出的高速定點DSP,,它擁有處理能力強大的CPU,、高達1 MB的RAM及豐富的外設接口。外設包括為CPU訪問外圍設備提供無縫接口的靈活的外部存儲器接口EMIFA和EMIFB,,一個使得DSP很容易通過PCI接口無縫連接到具有PCI功能的外部主CPU上的PCI接口,,一個16/32 bit寬的異步并行接口HPI(和PCI共用相同的引腳),一個提供64 bit數(shù)據(jù)通道訪問的增強型EDMA等,。TMS320C6416采用3.3 V和1.4 V電源供電,,其中I/O采用3.3 V電源供電,內核采用1.4 V電源供電,。TMS320C6416有符合IEEE1149.1標準的JTAG標準測試接口及相應的控制器,,從而可以通過仿真器把DSP系統(tǒng)與PC機相連,進行在線調試[1],。
2.1.1 DSP與SDRAM,、Flash的接口電路
DSP處理器TMS320C6416對外有2個EMIF總線接口,分別是寬64 bit的EMIFA和寬16 bit的EMIFB,。EMIFA接口具備與8,、16、32,、64 bit系統(tǒng)接口的功能,,EMIFB接口端口支持8 bit和16 bit系統(tǒng),。EMIFA分成ACE0~ACE3四個存儲空間,每個存儲空間可以獨立配置,,無縫連接多種類型的存儲器(如SRAM,、Flash RAM、DDR RAM),。
為了提高系統(tǒng)運行速度,,外擴兩片SDRAM芯片作為程序的運行空間、數(shù)據(jù)及堆棧區(qū),。SDRAM 芯片選用同步存儲器MT48LC2M32B2TG,,其容量為2 M×32 bit。TMS320C6416通過EMIFA接口實現(xiàn)與兩片SDRAM芯片的無縫連接,。
TMS320C6416內部沒有Flash存儲器,,為了形成獨立的系統(tǒng),采用外部擴展Flash存儲器AM29LV400B存儲程序,。系統(tǒng)復位時,,從Flash中加載程序。TMS320C6416通過EMIFB接口實現(xiàn)與Flash芯片的無縫連接,。
2.1.2 DSP與FPGA的接口電路
由于DSP處理器TMS320C6416的采樣速度及存儲空間受到自身約束限制,,所以數(shù)據(jù)的采集、流向控制和數(shù)據(jù)預處理等任務由FPGA完成,。FPGA芯片選用Xilinx公司低成本現(xiàn)場可編程門陣列Spartan-3E系列中的XC3S500E,。XC3S500E芯片集成有20個Block RAM,每個RAM塊中的18 Kbit的模塊存儲器是完全同步,、真正的雙端存儲器,。用戶可獨立地從每個端口讀出或向每個端口寫入(但同一地址不能同時進行讀和寫)。另外,,每個端口都有一個獨立的時鐘,,并且對每個端口的數(shù)據(jù)寬度都可以獨立進行配置。
在該協(xié)議轉換器中,,DSP通過EMIFA接口連接到FPGA,,實現(xiàn)DSP與FPGA Block RAM的無縫連接,從而使得DSP與FPGA之間的通信問題轉化為DSP對其EMIFA外設的訪問,,達到了提高系統(tǒng)實時性的目的,。為了保持FPGA與DSP之間的同步,F(xiàn)PGA的時鐘直接由DSP內部的鎖相環(huán)提供,。DSP處理器TMS320C6416與FPGA的接口示意圖如圖2所示[2],。
2.2 S3C4510B及其外圍電路設計
ARM芯片選用Samsung公司的S3C4510B。S3C4510B是基于以太網(wǎng)應用的高性價比16/32 bit RISC微控制器,,內含一個由ARM公司設計的16/32 bit ARM7TDMI RISC處理器核,。S3C4510B 提供了一套比較完整的通用的外圍設備,,從而使得整個系統(tǒng)消耗最小,。正是因為它具有很多常用的功能模塊,,所以也免去了添加配置附加設備的麻煩。芯片上集成的功能主要包括以下幾個方面[3]:3.3 V ARM內核和3.3 V外部I/O,,具有50 MHz時鐘頻率的微處理器,;8 KB的Cache/SRAM;一個10/100 Mb/s以太網(wǎng)控制器,,MII接口,;2個HDLC通道,每個通道可支持10 Mb/s,;2個UART通道,,2個DMA通道,2個32 bit定時/計數(shù)器,;1個通道IIC接口,,18個可編程I/O口;中斷控制器,,支持21個中斷源,,包括4個外部中斷;支持SDRAM,、SRAM,、Flash等;具有擴展外部總線和JTAG接口,,支持軟件開發(fā)及硬件調試,。
本設計選用ARM微控制器S3C4510B是因其集成有以太網(wǎng)控制器和極強的外圍擴展能力。S3C4510B以及其外圍芯片F(xiàn)lash,、SDRAM組成了整個系統(tǒng)的核心,,負責控制和協(xié)調各模塊工作,并實現(xiàn)與遠程上位機的以太網(wǎng)通信,。本設計對S3C4510B內部SDRAM和ROM進行了擴充,。采用兩片SDRAM芯片HY57V641620并聯(lián)構建32 bit的SDRAM存儲系統(tǒng);采用一片F(xiàn)lash芯片HY29LV160構建16 bit的Flash存儲器系統(tǒng),。
2.2.1 ARM與DSP的接口電路
由于ARM微控制器要實現(xiàn)整個系統(tǒng)的協(xié)調控制和網(wǎng)絡功能,,DSP處理器要執(zhí)行復雜計算,因此需要實現(xiàn)ARM和DSP之間的數(shù)據(jù)交換,。從某種程度上來說,,ARM和DSP之間數(shù)據(jù)交換的速度決定了整個系統(tǒng)的運行速度和性能。
DSP處理器TMS320C6416集成了一個16/32 bit寬的主機接口HPI,,HPI通過復位時的自舉和器件配置引腳HD5選擇采用HPI16或HPI32,。HPI具有兩條地址線HCNTRL[1:0],,負責對HPI的內部寄存器尋址。HPI只有三個32 bit內部寄存器,,分別是控制寄存器HPIC,、地址寄存器HPIA和數(shù)據(jù)寄存器HPID。只需對上述三個寄存器進行相應的讀寫操作,,就能完成對DSP內存空間的訪問,。
由于ARM微控制器S3C4510B中沒有完全符合DSP處理器TMS320C6416 HPI接口時序的外部接口可以直接使用,因此選用S3C4510B中時序最接近HPI接口時序的外部I/O接口與TMS320C6416進行連接,。TMS320C6416與S3C4510B的接口示意圖如圖3所示,。由圖3可知,TMS320C6416與S3C4510B通過單獨的32 bit數(shù)據(jù)線HD0~HD31和8條控制線進行連接,。S3C4510B通過HPI訪問DSP內部的RAM以及其他一些外部資源,。在整個ARM與DSP通過HPI進行通信和數(shù)據(jù)交換的過程中,除了中斷ARM和清除ARM發(fā)過來的中斷需要DSP本身參與外,,其他操作中DSP都處于被動地位,。所以對于ARM來說,DSP就相當于一片外接的SDRAM,。
2.2.2 以太網(wǎng)接口電路
ARM微控制器S3C4510B內嵌一個以太網(wǎng)控制器,,支持媒體獨立接口MII(Media Independent Interface)和帶緩沖DMA接口(Buffered DMA Interface)??稍诎腚p工或全雙工模式下提供10 /100 Mb/s的以太網(wǎng)接入,。在半雙工模式下,控制器支持CSMA/CD協(xié)議,,在全雙工模式下支持IEEE802.3 MAC控制層協(xié)議,。因此,S3C4510B內部實際上已包含了以太網(wǎng)MAC控制,,但并未提供物理層接口,,所以采用RTL8201作為以太網(wǎng)的物理層接口。信號的發(fā)送和接收端TPRX+,、TPRX-,、TPTX+、TPTX-應通過網(wǎng)絡隔離變壓器和RJ45接口接入傳輸媒體[4],。以太網(wǎng)接口示意圖如圖4所示,。
3 系統(tǒng)軟件設計
由于需要ARM微控制器S3C4510B實現(xiàn)整個系統(tǒng)的協(xié)調控制和網(wǎng)絡功能,因此在S3C4510B上移植了嵌入式操作系統(tǒng)μClinux,。μCLinux是一個帶有完整TCP/IP協(xié)議的操作系統(tǒng),,在μCLinux中加入實時RT-Linux模塊以滿足對嵌入式操作系統(tǒng)的實時性要求,并根據(jù)需要對μCLinux系統(tǒng)進行了裁剪,。
在網(wǎng)絡通信中,,基于TCP/IP協(xié)議的通信方式有很多,,本文選用Socket實現(xiàn)服務器端和客戶端的數(shù)據(jù)通信。Socket是建立在傳輸層協(xié)議上的一種套接字規(guī)范,,它定義了兩臺計算機間進行通信的規(guī)范,。套接字屏蔽了底層通信軟件和具體操作系統(tǒng)的差異,使得任何兩臺安裝了TCP協(xié)議軟件和實現(xiàn)了套接字規(guī)范的計算機之間的通信成為可能,。在開發(fā)?滋CLinux系統(tǒng)下的套接字程序時,,采用了TCP套接字,,因為它提供了一種可靠的面向連接的數(shù)據(jù)傳輸方法,,有檢錯和糾錯機制,并且不管對單個數(shù)據(jù)報還是數(shù)據(jù)包,,它都提供一種流式數(shù)據(jù)傳輸方式,。服務器首先啟動并進行初始化操作,通過調用函數(shù)socket()創(chuàng)建一個套接字,,然后調用函數(shù)bind()將該套接字和本地網(wǎng)絡地址綁定在一起,,再調用函數(shù)listen()將該套接字轉換成傾聽套接字,之后調用函數(shù)accept()來等待接收客戶的請求,??蛻粼谡{用函數(shù)socket()建立套接字后就可以調用函數(shù)connect()與服務器建立連接。連接一旦建立,,客戶端和服務器端之間就可以通過調用函數(shù)read()和write()進行通信,,待數(shù)據(jù)傳送結束以后,雙方調用函數(shù)close()關閉套接字[5],。
通過對系統(tǒng)進行聯(lián)合調試,,實現(xiàn)了被測數(shù)據(jù)無損、實時,、遠距離與遠程上位機進行通信并能接收上位機的控制指令,,實現(xiàn)工作狀態(tài)遠程交互的任務。測試人員通過上位機可以對遙測數(shù)據(jù)進行編輯,,并隨時可以查看接收數(shù)據(jù)的正確與否,。
本文詳細介紹了基于DSP+ARM架構的協(xié)議轉換器的設計實現(xiàn)。提供了詳細的硬件平臺結構設計方案,,闡述了基于嵌入式系統(tǒng)的網(wǎng)絡編程的實現(xiàn)方法,。根據(jù)本方案實現(xiàn)的協(xié)議轉換器具有低成本、低功耗,、通用性好,、功能可升級擴展等優(yōu)點。
參考文獻
[1] TI.TMS320C6416 datasheet[EB/OL].http://www.TI.com,,2001.
[2] 賽靈思公司.使用EMIF將Xilinx FPGA與TI DSP平臺接口應用指南[EB/OL].www.xilinx.com.cn,,2007.
[3] 李駒光.ARM應用系統(tǒng)開發(fā)詳解[M].北京:清華大學出版社,,2004.
[4] Realtek.RTL8201 Datasheet[EB/OL].http://www.realtek.com.
[5] 孫天澤,袁文菊,,張海峰.嵌入式設計及Linux驅動開發(fā)指南[M].北京:電子工業(yè)出版社,,2005.