數(shù)據(jù)傳送是一種重要的信息傳輸方式,廣泛應(yīng)用于現(xiàn)代電子系統(tǒng)中。在本項目中,我們選擇了以太網(wǎng)口作為數(shù)據(jù)傳送總線變換器與上位機的數(shù)據(jù)轉(zhuǎn)發(fā)接口,以高速串口作為控制口,并采用了FPGA+DSP+ARM的架構(gòu)作為實時信息處理平臺。
設(shè)計原理
整體設(shè)計
考慮到測試系統(tǒng)實時性和可靠性的需求,我們選擇了以太網(wǎng)口作為數(shù)據(jù)傳送總線變換器與上位機的數(shù)據(jù)轉(zhuǎn)發(fā)接口,高速串口作為控制口,并采用了FPGA+DSP+ARM的架構(gòu)作為實時信息處理平臺。數(shù)據(jù)傳送總線變換器的系統(tǒng)框圖如圖1所示。其中,F(xiàn)PGA作為數(shù)據(jù)預處理器,完成并行數(shù)據(jù)到串行數(shù)據(jù)的轉(zhuǎn)換等數(shù)據(jù)預處理任務(wù);DSP讀取FPGA處理后的數(shù)據(jù)并完成數(shù)據(jù)壓縮的任務(wù);ARM作為中央處理控制器,主要完成從DSP系統(tǒng)中讀取已經(jīng)編碼好的數(shù)據(jù)并通過以太網(wǎng)口完成與上位機的實時通信任務(wù)。上位機按照數(shù)據(jù)傳輸協(xié)議、產(chǎn)品的數(shù)據(jù)遙測協(xié)議解調(diào)出各類物理變量,記錄并存儲。測試人員通過上位機完成工作狀態(tài)的遠程控制與各種信息交互任務(wù)。在該系統(tǒng)中采用了FPGA+DSP+ARM的高端架構(gòu),但是衡量一個系統(tǒng)的整體性能不僅要看所使用的器件和所完成的功能,還要看各個器件之間的接口形式。在FPGA+DSP+ARM的信息處理平臺上,三者之間的接口形式將決定整個系統(tǒng)的性能。為滿足實時的信號處理任務(wù),在選擇DSP芯片時,不僅要考慮DSP芯片的處理速度,還要考慮DSP芯片與FPGA、ARM的接口能力,選擇帶有EMIF和HPI接口的DSP使其與FPGA、ARM無縫連接成為該系統(tǒng)設(shè)計的關(guān)鍵一環(huán)。
器件選型
在該數(shù)據(jù)傳送總線變換器中,F(xiàn)PGA選用Xilinx公司最新推出的低成本FPGASpartan-3E系列中的XC3S500E。XC3S500E包含有20個Block RAM,每個RAM塊中的18 KB的模塊存儲器,是完全同步、真正的雙端存儲器。用戶可獨立地從每個端口讀出或向每個端口寫入(但同一地址不能同時進行讀和寫)。另外,每個端口都有一個獨立的時鐘,對每個端口的數(shù)據(jù)寬度都可以獨立進行配置。ARM芯片選用Samsung公司的s3C4510B。S3C4510B是基于以太網(wǎng)應(yīng)用系統(tǒng)的高性價比16/32 bit RISC微控制器,內(nèi)含一個由ARM公司設(shè)計的16/32 bit ARM7TDMI RISC處理器核。除了ARM7TDMI核以外,S3C4510B還有許多重要的片內(nèi)外圍功能模塊,其中就有一個以太網(wǎng)控制器,用于S3C4510B系統(tǒng)與其他設(shè)備的網(wǎng)絡(luò)通信。DSP芯片選用TI公司的TMS320C6416。TMS320C6416是TI公司推出的高速定點DSP,它擁有處理能力強大的CPU、高達1 MB的RAM、豐富的外設(shè)接口。外設(shè)包括CPU訪問外圍設(shè)備提供無縫接口的靈活的外部存儲器接口EMIFA和EMIFB,一個使得DSP很容易通過PCI接口無縫連接到一個具有PCI功能的外部主CPU上的PCI接口,一個16/32 bit寬的異步并行接口HPI(和PCI共用相同的引腳),一個提供64 bit數(shù)據(jù)通道訪問的增強型EDMA等。其高速的處理速度滿足系統(tǒng)的實時性要求,并能實現(xiàn)與多種外設(shè)無縫連接。
軟件設(shè)計
嵌入式操作系統(tǒng)
在該數(shù)據(jù)傳送總線變換器中,實時數(shù)據(jù)壓縮的任務(wù)由DSP完成。ARM S3C4510B完成與PC之間的以太網(wǎng)通信,其軟件實現(xiàn)所要求的實時性、可靠性和復雜性使得選擇一種帶有TCP/IP協(xié)議包的嵌入式實時操作系統(tǒng)成為必需,而μCLinux是一個帶有完整的TCP/IP協(xié)議的操作系統(tǒng),在μCLinux中加入實時RT-Linux模塊以滿足對嵌入式操作系統(tǒng)的實時性要求。
基帶、頻帶和數(shù)字數(shù)據(jù)傳輸
①基帶傳輸是指由數(shù)據(jù)終端設(shè)備(DTE)送出的二進制“1”或“0”的電信號直接送到電路的傳輸方式?;鶐盘栁唇?jīng)調(diào)制,可以經(jīng)過碼形變換(或波形變換)進行驅(qū)動后直接傳輸。基帶信號的特點是頻譜中含有直流、低頻和高頻分量,隨著頻率升高,其幅度相應(yīng)減小,最后趨于零?;鶐鬏敹嘤迷诙叹嚯x的數(shù)據(jù)傳輸中,如近程計算機間數(shù)據(jù)通信或局域網(wǎng)中用雙絞線或同軸電纜為介質(zhì)的數(shù)據(jù)傳輸。②大多數(shù)傳輸信道是帶通型特性,基帶信號通不過。采用調(diào)制方法把基帶信號調(diào)制到信道帶寬范圍內(nèi)進行傳輸,接收端通過解調(diào)方法再還原出基帶信號的方式,稱為頻帶傳輸。這種方式可實現(xiàn)遠距離的數(shù)據(jù)通信,例如利用電話網(wǎng)可實現(xiàn)全國或全球范圍的數(shù)據(jù)通信。③數(shù)字數(shù)據(jù)傳輸是利用數(shù)字話路傳輸數(shù)據(jù)信號的一種方式。例如,利用PCM(脈沖編碼調(diào)制)數(shù)字電話通路,每一個話路可以傳輸64kbit/s的數(shù)據(jù)信號,不需要調(diào)制,效率高,傳輸質(zhì)量好,是數(shù)據(jù)通信很好的一種傳輸方式。
并行傳輸與串行傳輸
①并行傳輸是構(gòu)成字符的二進制代碼在并行信道上同時傳輸?shù)姆绞?。例如?單位代碼字符要用8條信道并行同時傳輸,一次傳一個字符,收、發(fā)雙方不存在同步問題,速度快,但信道多、投資大,數(shù)據(jù)傳輸中很少采用。②串行傳輸是構(gòu)成二進制代碼在一條信道上以位(碼元)為單位,按時間順序逐位傳輸?shù)姆绞?。按位發(fā)送,逐位接收,同時還要確認字符,所以要采取同步措施。速度雖慢,但只需一條傳輸信道,投資小,易于實現(xiàn),是數(shù)據(jù)傳輸采用的主要傳輸方式。
異步傳輸和同步傳輸
①異步傳輸是字符同步傳輸?shù)姆绞?,又稱起止式同步。當發(fā)送一個字符代碼時,字符前面要加一個“起”信號,長度為1個碼元寬,極性為“0”,即空號極性;而在發(fā)完一個字符后面加一個“止”信號,長度為1,1.5(國際2號代碼時用)或2個碼元寬,極性為“1”,即傳號極性。接收端通過檢測起、止信號,即可區(qū)分出所傳輸?shù)淖址?。字符可以連續(xù)發(fā)送,也可單獨發(fā)送,不發(fā)送字符時,連續(xù)發(fā)送止信號。每一個字符起始時刻可以是任意的,一個字符內(nèi)碼元長度是相等的,接收端通過止信號到起信號的跳變(“1” “0”)來檢測一個新字符的開始。該方式簡單,收、發(fā)雙方時鐘信號不需要精確同步。缺點是增加起、止信號,效率低,使用于低速數(shù)據(jù)傳輸中。②同步傳輸是位(碼元)同步傳輸方式。該方式必須在收、發(fā)雙方建立精確的位定時信號,以便正確區(qū)分每位數(shù)據(jù)信號。在傳輸中,數(shù)據(jù)要分成組(或稱幀),一幀含多個字符代碼或多個獨立碼元。在發(fā)送數(shù)據(jù)前,在每幀開始必須加上規(guī)定的幀同步碼元序列,接收端檢測出該序列標志后,確定幀的開始,建立雙方同步。接收端DCE從接收序列中提取位定時信號,從而達到位(碼元)同步。同步傳輸不加起、止信號,傳輸效率高,使用于2 400 bit/s以上數(shù)據(jù)傳輸,但技術(shù)比較復雜。
單工、半雙工和全雙工傳輸
單工傳輸指數(shù)據(jù)只能按單一方向發(fā)送和接收;半雙工傳輸指數(shù)據(jù)可以在兩個方向傳輸?shù)荒芡瑫r進行,即交替收、發(fā);全雙工傳輸指數(shù)據(jù)可以在兩個方向同時傳輸,即同時收和發(fā)。一般四線線路為全雙工數(shù)據(jù)傳輸,二線線路可實現(xiàn)全雙工數(shù)據(jù)傳輸。
驅(qū)動和應(yīng)用程序的開發(fā)
基于μCLinux操作系統(tǒng)的硬件驅(qū)動和應(yīng)用程序的開發(fā)是在交叉編譯環(huán)境中進行的,首先在PC機上開發(fā),然后移植到目標機上進行調(diào)試并最終固化到目標機上。所開發(fā)的硬件驅(qū)動有以太網(wǎng)卡控制器驅(qū)動、LCD驅(qū)動、HPI驅(qū)動等驅(qū)動程序。系統(tǒng)軟件結(jié)構(gòu)如圖4所示.在μClinux操作系統(tǒng)上運行三個任務(wù):讀取壓縮數(shù)據(jù)、通過以太網(wǎng)發(fā)送數(shù)據(jù)、接收和執(zhí)行來自遠端PC機的命令。其中讀取DSP壓縮數(shù)據(jù)任務(wù)對實時性有要求,它通過中斷處理程序來實現(xiàn),而其他的兩個任務(wù)則通過用戶進程來實現(xiàn)。以太網(wǎng)發(fā)送數(shù)據(jù)的任務(wù)和讀取壓縮數(shù)據(jù)的任務(wù)共享一個緩沖區(qū),通過ioctl函數(shù)在其間傳遞緩沖區(qū)雙向鏈表的地址。所以需要為數(shù)據(jù)處理模塊上的通信接口HPI注冊一個驅(qū)動程序,注冊驅(qū)動程序的函數(shù)是:result=register_chrdev(HPI_MAJOR,"hpi",&hpi_fops)驅(qū)動程序的主要結(jié)構(gòu)如下:struct file_operations hpi_fops={owner: THIS MODULE,open: hpi_open,read: hpi_read,write: hpi_write,ioctl: hpi_ioctl,mmap:hpi_mmap,release:hpi_release,};HPI驅(qū)動程序編寫完成后,將驅(qū)動程序源代碼置于../linux-2.4.x/driver/char目錄下,同時修改同級目錄下的Makefile,在../linux-2.4.x/driver/char/Makefile中加入Obj_y +=hpi.o同時,為了能夠在?滋Clinux啟動時自動初始化此字符設(shè)備,還需要修改 ../linux-2.4.x/driver/char/men.c文件,在其中加入:(1)新添加的字符驅(qū)動程序初始化函數(shù)聲明:extern void hpi_init(void);(2)在字符設(shè)備統(tǒng)一初始化函數(shù)int _init chr_dev_init(void)中調(diào)用新設(shè)備的初始化函數(shù),需要在int _init chr_dev_init(void)中加入語句:hpi_init();在函數(shù)int _init chr_dev_init(void)中,字符設(shè)備的初始化函數(shù)將被統(tǒng)一調(diào)用,并完成字符驅(qū)動file_operations數(shù)據(jù)結(jié)構(gòu)的注冊,初始化之后就可以使用HPI字符設(shè)備了。
應(yīng)用場景
無線數(shù)據(jù)傳送業(yè)務(wù)
無線數(shù)據(jù)傳送業(yè)務(wù)是指前述基礎(chǔ)電信業(yè)務(wù)條目中未包括的、以無線方式提供的端到端數(shù)據(jù)傳送業(yè)務(wù),該業(yè)務(wù)可提供漫游服務(wù),一般為區(qū)域性。提供該類業(yè)務(wù)的系統(tǒng)包括蜂窩數(shù)據(jù)分組數(shù)據(jù)(CDPD) 、 PLANET 、 NEXNET 、 Mobitex 等系統(tǒng)。雙向?qū)ず?/a>屬無線數(shù)據(jù)傳送業(yè)務(wù)的一種應(yīng)用。無線數(shù)據(jù)傳送業(yè)務(wù)經(jīng)營者必須自己組建無線數(shù)據(jù)傳送網(wǎng),無國內(nèi)通信設(shè)施服務(wù)業(yè)務(wù)經(jīng)營權(quán)的經(jīng)營者不得建設(shè)國內(nèi)傳輸網(wǎng)絡(luò)設(shè)施,必須租用具有相應(yīng)經(jīng)營權(quán)運營商的傳輸設(shè)施組建業(yè)務(wù)網(wǎng)絡(luò)。
數(shù)據(jù)傳送速率
數(shù)據(jù)傳送速率是指MO磁光盤機與主機之間傳輸數(shù)據(jù)的速度,單位為MB/s。數(shù)據(jù)傳送速率是衡量MO磁光盤機性能的重要參數(shù)。越高的數(shù)據(jù)傳送速率意味著該MO磁光盤機的性能也就越高。數(shù)據(jù)傳送速率又可分為脈沖傳輸率和持續(xù)傳輸率,其中,持續(xù)傳輸率才真正反映了該MO磁光盤機的實際性能。目前主流產(chǎn)品的數(shù)據(jù)傳送速率在4MB/s-10MB/s之間。
程序示例
orihi equ 10H ;源高8位地址ORILO EQU 00H ;源8低位地址TARHI EQU 20H ;目的高8位地址TARLO EQU 00H ;目的低8位地址CONHI EQU 01H ;字節(jié)數(shù)高8位CONLO EQU 0FFH ;字節(jié)數(shù)地8位ORG 0000HLJMP MAINMAIN:setbrs0setb rs1MOV R2, #ORIHIMOV R3, #ORILOMOV R4, #TARHIMOV R5, #TARLOMOV R6, #CONHIMOV R7, #CONLOMOV DPH, R2;將源的高位地址放入dptr高位MOV DPL, R3;將源的低位地址放入DPTR低位inc auxr1;轉(zhuǎn)換成目的指針MOV DPH,R4;將目的的高位地址放入DPTR高位MOV DPL,R5;將目的的低位地址放入DPTR低位inc auxr1;轉(zhuǎn)換回源指針
硬件設(shè)計
ARM與DSP的接口電路
dsp TMS320C6416 HPI描述
TMS320C6416集成有一個16/32 bit寬主機接口HPI,HPI通過復位時的自舉和器件配置引腳HD5選擇采用HPI16還是HPI32。HPI具有兩條地址線HCNTRL[1:0],負責對HPI的內(nèi)部寄存器進行尋址。HPI只有3個32 bit內(nèi)部寄存器,分別是控制寄存器HPIC、地址寄存器HPIA和數(shù)據(jù)寄存器HPID。用戶只需對上述3個寄存器進行相應(yīng)的讀寫操作,就能完成對DSP內(nèi)存空間的訪問。
S3C4510B與TMS320C6416的接口電路
由于S3C4510B中沒有完全符合TMS320C6416 HPI接口時序的外部接口可以直接使用,因此選用S3C4510B中時序最接近HPI接口時序的外部I/O接口與TMS320-C6416進行連接。TMS320C6416與S3C4510B接口電路如圖2所示。TMS320C6416與S3C4510B通過單獨的32 bit數(shù)據(jù)線HD0~HD31和8條控制線進行連接。S3C4510B通過HPI接口訪問DSP內(nèi)部的RAM以及其他外部資源。在整個ARM微處理器與DSP芯片通過HPI接口通信和數(shù)據(jù)交換的過程中,除了中斷ARM和清除ARM發(fā)過來的中斷需要DSP本身參與外,其他操作DSP都處于被動的地位,幾乎不用進行其他的操作。所以對于ARM來說,DSP系統(tǒng)單元就相當于一片外接的SDRAM。在TMS320C6416中,HPI、GP[15:9]、PCI、EEPROM、McBSP2共用了一組引腳,DSP在復位時通過鎖存PCI_EN和McBSP2_EN引腳的值來選擇使用何種外設(shè)。在該系統(tǒng)中,將這兩個使能引腳都拉低。
參考資料 >
數(shù)據(jù)傳輸方法詳解.數(shù)據(jù)傳輸方法詳解.2024-11-11
什么是數(shù)據(jù)傳輸,數(shù)據(jù)傳輸?shù)闹R介紹.與非網(wǎng).2024-11-11
數(shù)據(jù)傳輸.移動通訊網(wǎng).2024-11-11