国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

FPGA與TMS320C67XX的McBSP接口設(shè)計(jì)

2016-11-16 08:49:32沈?yàn)t波閆法鋼
聲學(xué)與電子工程 2016年3期
關(guān)鍵詞:以太網(wǎng)命令上位

沈?yàn)t波 閆法鋼

(第七一五研究所,杭州,310023)

FPGA與TMS320C67XX的McBSP接口設(shè)計(jì)

沈?yàn)t波 閆法鋼

(第七一五研究所,杭州,310023)

多通道緩沖串行口McBSP(Multichannel Buffered Serial Port)是TI公司DSP產(chǎn)品中標(biāo)準(zhǔn)串行口的增強(qiáng)版本[1]。提出一種采用FPGA模擬McBSP接口的方法,基于Verilog HDL語言實(shí)現(xiàn)了McBSP接口的基本功能;通過與TMS320C67XX系列DSP的對(duì)接測(cè)試證明了設(shè)計(jì)的有效性和實(shí)用性。

串行接口;McBSP接口;對(duì)接測(cè)試;DSP;FPGA

在許多數(shù)字信號(hào)處理應(yīng)用系統(tǒng)中,DSP擔(dān)任的工作是快速而復(fù)雜的核心運(yùn)算,但是對(duì)于運(yùn)算結(jié)果的輸出控制不夠靈活;而DSP與FPGA相結(jié)合的設(shè)計(jì)則可以有效彌補(bǔ)這種不足。本文從實(shí)際項(xiàng)目需求出發(fā),設(shè)計(jì)了一種基于FPGA的McBSP接口協(xié)議,與TI公司的TMS320C67XX系列DSP進(jìn)行數(shù)據(jù)通信。DSP接收ADC采樣后信號(hào),經(jīng)過一系列運(yùn)算處理后,通過McBSP接口發(fā)送至FPGA,最終由FPGA通過以太網(wǎng)UDP/IP協(xié)議發(fā)送至上位機(jī);同時(shí),F(xiàn)PGA接收上位機(jī)的控制命令,解析后通過McBSP接口發(fā)送至DSP響應(yīng)執(zhí)行,從而完成雙向通信任務(wù)。

1 McBSP接口概述

McBSP接口是TI公司DSP產(chǎn)品中標(biāo)準(zhǔn)串行口的增強(qiáng)版本,提供了以下功能:全雙工通信;允許連續(xù)數(shù)據(jù)流的雙緩沖數(shù)據(jù)寄存器;接收與發(fā)送使用獨(dú)立幀同步脈沖和時(shí)鐘信號(hào);提供與工業(yè)標(biāo)準(zhǔn)編碼器、模擬接口芯片及其他串口連接的ADC、DAC器件的標(biāo)準(zhǔn)接口;支持用來進(jìn)行數(shù)據(jù)傳送的外部偏移時(shí)鐘,或內(nèi)部可編程的頻率偏移時(shí)鐘;另外,McBSP還具有以下能力:寬范圍的數(shù)據(jù)字長選擇,包括8位、12位、16位、20位、24位和32位字長;對(duì)幀同步和數(shù)據(jù)時(shí)鐘的可編程電平表示;高度可編程的內(nèi)部幀與時(shí)鐘發(fā)送器[2]。

圖1 系統(tǒng)框圖

由圖1可以看出,McBSP接口通過數(shù)據(jù)發(fā)送(DX)引腳和數(shù)據(jù)接收(DR)引腳,與連接到McBSP接口的設(shè)備進(jìn)行數(shù)據(jù)通信??刂菩畔ⅲ〞r(shí)鐘和幀同步)通過CLKX、CLKR、FSX和FSR引腳進(jìn)行通信。

DSP端的McBSP接口通過配置相應(yīng)寄存器實(shí)現(xiàn),本文直接給出配置結(jié)果:發(fā)送與接收均固定幀長為32位;接收數(shù)據(jù)(DR)在周期時(shí)鐘(CLKR)的下降沿采樣,發(fā)送數(shù)據(jù)在(DX)上升沿定時(shí);使用高電平幀同步信號(hào);數(shù)據(jù)位與幀同步不延時(shí);接收和發(fā)送時(shí)序如圖2。

圖2 McBSP收發(fā)時(shí)序

每幀數(shù)據(jù)32位,用同步信號(hào)(FSX/FSR)作為幀起始標(biāo)志,即幀同步與緊接的31個(gè)時(shí)鐘周期構(gòu)成一個(gè)完整的幀傳輸周期;幀內(nèi)32位數(shù)據(jù),收發(fā)遵循高位在前、低位在后原則。

2 協(xié)議設(shè)計(jì)

經(jīng)DSP運(yùn)算處理后的報(bào)文長度為固定1 024 Byte,而McBSP接口每幀發(fā)送長度為4 Byte(32位);因此,每個(gè)報(bào)文需拆分成256幀發(fā)送。同時(shí),1 024 Byte的報(bào)文有如下特征:以每4 Byte為單位,高8位(D31~D24)為D23位的符號(hào)擴(kuò)展,即每4 Byte的高9位相同。設(shè)計(jì)DSP至FPGA的McBSP接口傳輸協(xié)議如下:在1 024 Byte的報(bào)文前面增加3幀(12 Byte)首部信息,如圖3。

· 4 Byte發(fā)方地址:C0B90182H,表示信息發(fā)送方的地址,不與有效數(shù)據(jù)沖突;

· 4 Byte收方地址:EAB90111H,表示信息接收方的地址,不與有效數(shù)據(jù)沖突;

· 1 Byte 00H,1 Byte報(bào)文標(biāo)識(shí)(83H),2 Byte報(bào)文長度(0410H),4 Byte組成一幀;且高9位為:0000_0000_1,不與有效數(shù)據(jù)沖突。

圖3 發(fā)送報(bào)文格式

FPGA通過UDP/IP協(xié)議接收上位機(jī)的控制命令,也為固定長度20 Byte,格式同樣包含12 Byte的首部(C0B90150H,EAB9010BH,00E30014H,首部字段內(nèi)容固定,但區(qū)分于DSP至FPGA的首部信息)及8 Byte命令內(nèi)容。20 Byte的控制命令,拆分成5幀McBSP數(shù)據(jù)依次發(fā)送至DSP。

收發(fā)過程中,首部信息的添加,即保證其不會(huì)與數(shù)據(jù)部分內(nèi)容重合,也方便報(bào)文同步信息的提取,確保報(bào)文有效傳輸。

3 FPGA實(shí)現(xiàn)

由于McBSP串口支持全雙工通信,F(xiàn)PGA內(nèi)部結(jié)構(gòu)劃分為“接收”和“發(fā)送”兩個(gè)獨(dú)立的設(shè)計(jì)單元?!敖邮铡焙汀鞍l(fā)送”單元在各自時(shí)鐘信號(hào)驅(qū)動(dòng)下,實(shí)現(xiàn)與DSP的報(bào)文通信。

3.1 “接收”過程

FPGA端“接收”對(duì)應(yīng)于DSP端的發(fā)送引腳DX、CLKX、FSX,“接收”單元根據(jù)McBSP協(xié)議約定,在接收到完整的報(bào)文后,通過以太網(wǎng)UDP/IP協(xié)議發(fā)送至上位機(jī)。

“接收”單元分為“數(shù)據(jù)通路”和“控制邏輯”兩部分,“數(shù)據(jù)通路”如圖4。

圖4 McBSP“接收”數(shù)據(jù)通路

數(shù)據(jù)DX和同步信號(hào)FSX在時(shí)鐘CLKX的下降沿存入各自對(duì)應(yīng)的32位移位寄存器;FSX所對(duì)應(yīng)的移位寄存器用作判斷,當(dāng)其對(duì)應(yīng)32位并行數(shù)據(jù)為8000_0000H時(shí),表明一個(gè)有效的McBSP數(shù)據(jù)幀被接收到;此時(shí),將DX所對(duì)應(yīng)的32位并行數(shù)據(jù)通過寫指針存入DPRAM;當(dāng)判斷完整的McBSP報(bào)文接收完畢時(shí),從DPRAM中讀取數(shù)據(jù),與以太網(wǎng)IP首部、UDP首部合并后,經(jīng)MAC(Media Access Control)層后,由以太網(wǎng)物理層芯片發(fā)送至上位機(jī)。

“控制邏輯”用于McBSP協(xié)議過濾,確保接收到正確的McBSP報(bào)文后,轉(zhuǎn)發(fā)至上位機(jī);狀態(tài)轉(zhuǎn)移關(guān)系如圖5。

圖5 McBSP“接收”狀態(tài)轉(zhuǎn)移圖

觸發(fā)狀態(tài)跳轉(zhuǎn)的信號(hào):

· Rcv:表示接收到一幀(32位)McBSP數(shù)據(jù);

· hdr1_flag:表示當(dāng)前所接收的幀為C0B90182H;

· hdr2_flag:表示當(dāng)前所接收的幀為EAB90111H;

· hdr3_flag:表示當(dāng)前所接收的幀為00830410H;

· Rcv_done:表示當(dāng)前接收到McBSP幀數(shù)達(dá)到256幀,即完整的McBSP報(bào)文接收完畢;

· frame_vld:表示當(dāng)前所接收的幀為有效McBSP報(bào)文的數(shù)據(jù)部分,即高9位相同。

狀態(tài)轉(zhuǎn)移邏輯描述:

· IDLE:初始化或復(fù)位后狀態(tài);當(dāng)接收到“Rcv&hdr1_flag”時(shí),跳轉(zhuǎn)至HDR_1;否則保持原狀態(tài);

· HDR_1:表示當(dāng)前處于已接收到“C0B90182H”幀狀態(tài);若接收到“Rcv&hdr2_flag”時(shí),跳轉(zhuǎn)至HDR_2;若接收到“Rcv&hdr1_flag”時(shí),保持原狀態(tài);若接收的McBSP幀“!hdr1_flag&!hdr2_flag”,返回IDLE;

· HDR_2:表示當(dāng)前處于已接收到“EAB90111H”幀狀態(tài);若接收到“Rcv& hdr3_flag”時(shí),跳轉(zhuǎn)至HDR_3;若接收到“Rcv&hdr1_flag”時(shí),返回HDR_1;若接收的McBSP幀 “!hdr1_flag&!hdr3_flag”,返回IDLE;

· HDR_3:表示當(dāng)前處于已接收到“00830410H”幀狀態(tài),此時(shí),無條件跳轉(zhuǎn)至FRAME準(zhǔn)備接收McBSP報(bào)文的數(shù)據(jù)部分;

· FRAME:表示持續(xù)接收McBSP報(bào)文的數(shù)據(jù)部分狀態(tài);若接收到“Rcv&!Rcv_done&frame_vld”時(shí),保持原狀態(tài);若接收到“Rcv& hdr1_flag”時(shí),跳轉(zhuǎn)至HDR_1;若接收到“Rcv&!hdr1_flag&! Rcv_done&!frame_vld”時(shí),表示當(dāng)前McBSP報(bào)文的數(shù)據(jù)部分未完整接收,返回IDLE;若接收到“Rcv_done”,表示完整的McBSP報(bào)文接收完成,跳轉(zhuǎn)至DONE;

· DONE:完整的McBSP報(bào)文接收完畢,觸發(fā)以太網(wǎng)UDP/IP發(fā)送流程,同時(shí)返回IDLE,等待下一幀McBSP數(shù)據(jù)。

3.2 “發(fā)送”過程

FPGA的“發(fā)送”過程是在完整接收以太網(wǎng)UDP/IP報(bào)文(20 Byte)后,對(duì)前12 Byte內(nèi)容作“協(xié)議過濾”,若為有效控制命令,拆分成5幀McBSP數(shù)據(jù)依次發(fā)送至DSP;若前12 Byte不符合McBSP協(xié)議首部格式,則丟棄該報(bào)文。

圖6 McBSP“發(fā)送”數(shù)據(jù)通路

FPGA的發(fā)送“時(shí)鐘”,由內(nèi)部分頻器產(chǎn)生。時(shí)鐘CLKR由該“時(shí)鐘”直接驅(qū)動(dòng);數(shù)據(jù)DR及同步信號(hào)FSR根據(jù)“時(shí)鐘”節(jié)拍產(chǎn)生。當(dāng)接收到完整有效控制命令后,單次從DPRAM讀取32位數(shù)據(jù),按照高位在前規(guī)則,由移位寄存器輸出至DR引腳;同時(shí),在每個(gè)32位數(shù)據(jù)的最高位(D31)置高FSR;重復(fù)五次,完成一個(gè)控制命令報(bào)文的發(fā)送流程。

3.3 硬件驗(yàn)證

McBSP協(xié)議的接收與發(fā)送邏輯用Verilog HDL語言描述實(shí)現(xiàn),經(jīng)編譯、布局、布線后,下載至Xilinx公司XC5VLX30T器件。該設(shè)計(jì)調(diào)用了一個(gè)器件內(nèi)嵌的 MAC硬核用于網(wǎng)絡(luò)傳輸,McBSP協(xié)議占用30%器件邏輯資源,實(shí)現(xiàn)了設(shè)計(jì)預(yù)期的傳輸功能。

經(jīng)DSP處理后的報(bào)文速率為6.144 Mbps,DSP配置時(shí)鐘CLKX頻率10 MHz;上位機(jī)發(fā)送的控制命令速率小于1 Mbps,CLKR由FPGA內(nèi)部分頻器產(chǎn)生的7.8 MHz時(shí)鐘提供。系統(tǒng)上電工作,上位機(jī)對(duì)接收到的以太網(wǎng)UDP/IP報(bào)文解析處理后,結(jié)果符合設(shè)計(jì)預(yù)期;同時(shí)DSP能快速有效響應(yīng)上位機(jī)發(fā)出的控制命令;McBSP接口協(xié)議保證通信的有效性和實(shí)用性。

4 結(jié)束語

基于FPGA的McBSP接口設(shè)計(jì),可以根據(jù)TMS320C67XX的配置模式,有效實(shí)現(xiàn)全雙工通信。本文針對(duì)具體項(xiàng)目設(shè)計(jì)了定長報(bào)文傳輸,設(shè)計(jì)簡潔,性能可靠;將來可以設(shè)計(jì)變長報(bào)文的傳輸協(xié)議,具備更好的通用性。

[1] Texas Instruments.TMS320C6000 DSP Multichannel Buffered Serial Port (McBSP)Reference Guide[Z].2004.

[2] 于鳳芹.TMS320 C6000 DSP 結(jié)構(gòu)原理與硬件[M] 北京: 北京航空航天大學(xué)出版社, 2008.

[3] Xilinx.Virtex–5 FPGA User Guide[Z].2012.

[4] Xilinx.Virtex–5 FPGA Embedded Tri-mode Ethernet MAC User Guide[Z].2012.

猜你喜歡
以太網(wǎng)命令上位
只聽主人的命令
基于1500以太網(wǎng)養(yǎng)豬場(chǎng)的智能飼喂控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
特斯拉 風(fēng)云之老阿姨上位
車迷(2018年12期)2018-07-26 00:42:22
移防命令下達(dá)后
談實(shí)時(shí)以太網(wǎng)EtherCAT技術(shù)在變電站自動(dòng)化中的應(yīng)用
電子制作(2017年24期)2017-02-02 07:14:44
“三扶”齊上位 決戰(zhàn)必打贏
基于ZigBee和VC上位機(jī)的教室智能監(jiān)測(cè)管理系統(tǒng)
這是人民的命令
一種90W高功率以太網(wǎng)供電系統(tǒng)的設(shè)計(jì)
以新思路促推現(xiàn)代農(nóng)業(yè)上位
遂平县| 福泉市| 东阳市| 遂宁市| 剑河县| 吉安县| 西昌市| 邯郸县| 本溪| 昭苏县| 三门县| 宜章县| 天水市| 江阴市| 五大连池市| 宜川县| 宣武区| 买车| 千阳县| 城口县| 彭州市| 嵩明县| 开阳县| 冷水江市| 蕲春县| 定兴县| 洞口县| 缙云县| 皋兰县| 岳阳市| 滦南县| 湖口县| 白朗县| 新泰市| 林芝县| 隆尧县| 涡阳县| 宜兴市| 林甸县| 宁武县| 新竹市|