新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 用EZ-USB實(shí)現(xiàn)TMS320C6X與主機(jī)數(shù)據(jù)傳輸

用EZ-USB實(shí)現(xiàn)TMS320C6X與主機(jī)數(shù)據(jù)傳輸

——
作者:中國(guó)科學(xué)院上海技術(shù)物理研究所 盧京晶 方中華 孫勝利 時(shí)間:2007-01-26 來源:《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》 收藏


dsp主要應(yīng)用于實(shí)時(shí)和大數(shù)據(jù)量的信號(hào)處理系統(tǒng),當(dāng)它與主機(jī)進(jìn)行通信時(shí),數(shù)據(jù)交換速度和接口的復(fù)雜度是系統(tǒng)的一個(gè)關(guān)鍵性能指標(biāo),因此迫切需要一種能滿足高速、簡(jiǎn)潔要求的通信方式,通用串行總線usb以其高速和內(nèi)置電源兩個(gè)特性,對(duì)提高設(shè)備的性能、降低成本和系統(tǒng)小型化具有很大的實(shí)際意義,本系統(tǒng)采用高速dsp(tms320c6713),配合嵌入usb2.0協(xié)議的芯片cy7c68013,實(shí)現(xiàn)小規(guī)模主從式系統(tǒng)中主機(jī)與dsp間的高速通信。經(jīng)實(shí)際驗(yàn)證,系統(tǒng)運(yùn)行可靠,是一種比較好的高速數(shù)據(jù)傳輸與處理的解決方案。

本文引用地址:http://butianyuan.cn/article/21201.htm

1 usb控制芯片

cypress公司的ez-usb fx2系列芯片是最早符合usb2.0協(xié)議的微控制器之一。它集成了收發(fā)器(transceiver)、串行接口引擎(sie),增強(qiáng)型的8051內(nèi)核以及可編程的外圍接口(gpif),fx2系列芯片獨(dú)特的結(jié)構(gòu)使數(shù)據(jù)傳輸速度最高可達(dá)到56mbps,最大程度地滿足了usb2.0的帶寬。

cy7c68013的結(jié)構(gòu)框圖如圖1所示。

fx2的端點(diǎn)緩沖區(qū)分為大小兩組:ep0、ep1(in)、ep1(out)是小端點(diǎn),大小為64字節(jié),只能由cpu來存取,不能由外部邏輯連接;ep2、ep4、ep6、ep8是大的可配置的端點(diǎn),ep2和ep4默認(rèn)為out端點(diǎn),ep6和ep8默認(rèn)為in端點(diǎn)。fx2為其大端點(diǎn)提供多種緩沖方式,滿足了傳輸中高帶寬的要求,傳輸過程中ez-usb fx2從in緩沖區(qū)中讀取上傳到主機(jī)的數(shù)據(jù),在out緩沖區(qū)中寫入供外部處理器讀取的數(shù)據(jù)。它具備全速(12mbps)和高速(480mbps)兩種傳輸速率,并具有usb協(xié)議所規(guī)定的4種傳輸模式,即控制傳輸(control mode)、中斷傳輸(interrupt mode)、塊傳輸(bulk mode)和等時(shí)傳輸(isochronous mode)。

2 系統(tǒng)硬件構(gòu)架

2.1 usb與dsp的硬件連接

系統(tǒng)中選用的數(shù)字信號(hào)處理器是ti公司發(fā)布的c6000浮點(diǎn)系列中的tms320c6713,其峰值處理速度能達(dá)到1350mflops(百萬次浮點(diǎn)操作/s)。外設(shè)資源包括直接存儲(chǔ)器訪問控制器(dma),外部存儲(chǔ)器接口(emif)、串行口、擴(kuò)展總線或主機(jī)口、定時(shí)器等。系統(tǒng)中利用其emif口,連接可編程邏輯芯片cpld來擴(kuò)展usb控制接口。cy7c68013能非常靈活地實(shí)現(xiàn)與dsp或mcu的接口。當(dāng)其作為主設(shè)備時(shí),通用可編程接口(gpif)具有可編程的波形描述符和配置寄存器,能夠輕易地兼容絕大多數(shù)總線標(biāo)準(zhǔn),當(dāng)其作為從設(shè)備時(shí),4kb的大容量fifo用于數(shù)據(jù)緩沖,簡(jiǎn)化了接口的外部硬件設(shè)計(jì),可采用同步或異步方式與主設(shè)備(如asic,dsp等)連接。

在本方案中,使其作為從設(shè)備,選用了slave fifos,異步讀/寫,在這種模式下,dsp可以像讀/寫普通fifo一樣對(duì)cy7c68013內(nèi)部的多層緩沖fifo進(jìn)行讀/寫。主要信號(hào)連接如圖2所示。主機(jī)(pc)發(fā)出命令的同時(shí)也由pa3提供中斷觸發(fā)信號(hào)給dsp的外部中斷引腳6(ext_int6)。其上升沿被檢測(cè)到以后,dsp就進(jìn)入相應(yīng)中斷服務(wù)程序,開始處理usb的傳輸,dsp通過cpld對(duì)cy7c68013進(jìn)行讀寫及使能控制,“或”組合邏輯滿足嚴(yán)格的時(shí)序要求,flagb和flagc是cy7c68013內(nèi)部fifo的空、滿狀態(tài)標(biāo)志,pa[0:1]表示pc發(fā)送的命令類型。這些信息在cpld內(nèi)部整合到數(shù)據(jù)總線ed[0:15],dsp開始傳輸數(shù)據(jù)包前對(duì)其提取判斷,tms320c6713對(duì)cy7c68013內(nèi)部端點(diǎn)(ep)的選擇,是通過地址線tea[2:3]來實(shí)現(xiàn)。

2.2 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)

根據(jù)上述硬件通信模式搭建基于pc、usb、dsp的主從式系統(tǒng),當(dāng)系統(tǒng)上電完成各模塊固件配置和硬件初始化后,可由pc發(fā)出控制命令,以外部信號(hào)觸發(fā)dsp進(jìn)入相應(yīng)的中斷處理程序,自動(dòng)完成數(shù)據(jù)流usb下載、dsb處理和usb回傳的多次循環(huán)過程;pc顯示處理后的結(jié)果。系統(tǒng)總體結(jié)構(gòu)框圖如圖3所示。

dsp芯片通過片中的emif(包括4個(gè)存儲(chǔ)空間ce[0:3])為sdram,flash等器件提供接口。sdram為同步存儲(chǔ)器件,emif有專門的控制線和時(shí)鐘與它進(jìn)行無縫連接(ce0空間)。這里sdram用做數(shù)據(jù)存儲(chǔ)器。

對(duì)于c6000系列dsp,調(diào)試好的應(yīng)用程序需要固化,以便系統(tǒng)上電時(shí)能自動(dòng)加載運(yùn)行。方案中采用flash啟動(dòng)引導(dǎo)模式,位于emif異步接口ce1空間。

復(fù)位電路提供系統(tǒng)上電和工作電壓異常時(shí)的自動(dòng)復(fù)位及人工控制復(fù)位。時(shí)鐘電路為dsp處理模塊提供時(shí)鐘信號(hào)。

usb的接口電路提供pc與dsp的高速數(shù)據(jù)傳輸通道,接口芯片通過cpld與外部處理器dsp相連,置于emif的ce2空間(通信模式如前所述)。

3 通信模塊軟件設(shè)計(jì)

cypress公司為了簡(jiǎn)化和加速用戶使用ez-usb fx2芯片進(jìn)行usb外設(shè)的開發(fā)過程,特別設(shè)計(jì)了cy7c68013的開發(fā)板,并帶有一個(gè)開發(fā)包,內(nèi)含一個(gè)usb外設(shè)所必需的驅(qū)動(dòng)程序、應(yīng)用程序以及一個(gè)完整的固件程序的框架,這個(gè)框架可以執(zhí)行ez-usb芯片的初始化,usb標(biāo)準(zhǔn)設(shè)備請(qǐng)求的處理和usb掛起電源管理服務(wù);用戶只需要提供一個(gè)usb描述符表,添加其他端點(diǎn)接受和發(fā)送數(shù)據(jù)的通信代碼,以及控制外圍電路的程序代碼即可。

3.1 cy7c68013的固件程序規(guī)劃

固件程序框架通過幾個(gè)不同的功能模塊,實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的互操作任務(wù)執(zhí)行器,首先,通過調(diào)用用戶的初始化函數(shù)td_init(),初始化所有內(nèi)部狀態(tài)變量,之后,程序框架將usb口初始化為未配置狀態(tài),并且使能中斷,以1s為時(shí)間間隔開始重新列舉(renumerate)設(shè)備,直到端點(diǎn)0收到設(shè)置包為止,一旦檢測(cè)端點(diǎn)0受多一個(gè)設(shè)置包,固件框架程序就啟動(dòng)執(zhí)行一個(gè)互操作的任務(wù)分配器,按照給定的順序重復(fù)執(zhí)行下面的任務(wù):調(diào)用函數(shù)td_poll(),判斷是否有標(biāo)準(zhǔn)設(shè)備請(qǐng)求等待處理,確定usb核是否報(bào)告了usb掛起事件。

主要固件配置如下:

1)配置異步從fifo(asynchronous slave fifo)模式,接口驅(qū)動(dòng)采用內(nèi)部的48m赫茲的時(shí)鐘源。

2)endpoint4和endpoint8作為雙向傳輸?shù)墓艿?,分別對(duì)應(yīng)緩沖fifo4和fifo8存放usb需要接收與下傳的數(shù)據(jù),它們均采用批量(bulk)傳輸方式,相對(duì)于其他usb2.0定義的傳輸方式具有數(shù)據(jù)可靠、傳輸速率高等特點(diǎn),是最常用的傳輸方式。

3)設(shè)置fifo4、fifo8為自動(dòng)方式,即在數(shù)據(jù)傳輸過程中無需cy7c68013的8051內(nèi)核參與,以保證持續(xù)、高速、有效的數(shù)據(jù)傳輸。

ez-usb fx2芯片定義了幾個(gè)特殊寄存器,以輔助固件程序相應(yīng)設(shè)備請(qǐng)求,并向主機(jī)傳送數(shù)據(jù),當(dāng)設(shè)備收到設(shè)置包時(shí),usb核會(huì)自動(dòng)將設(shè)置數(shù)據(jù)放入8字節(jié)的setupbuf緩沖區(qū)中,用戶只須從中讀取設(shè)置數(shù)據(jù),進(jìn)行分析來判斷請(qǐng)求的類型即可。

方案中部分設(shè)備請(qǐng)求代碼如下:

讀取緩沖區(qū)中第2字節(jié)由pa[0:1]發(fā)送至dsp,作為命令類型標(biāo)志(00為下傳,01為上傳,10為處理);同時(shí)pa3口提供外部中斷觸發(fā)信號(hào)的上升沿。

固件就緒后通過cypress公司提供的工具control panel加載至eeprom中,當(dāng)需要修改固件時(shí),就可以在不改動(dòng)硬件的情況下將主機(jī)上修改好的固件重新下載一次。

3.2 上位機(jī)流程

主機(jī)應(yīng)用程序與操作系統(tǒng)相互作用,利用pc豐富的資源,實(shí)現(xiàn)顯示驗(yàn)證,提高系統(tǒng)的可操作性,當(dāng)操作系統(tǒng)認(rèn)為有新設(shè)備接入時(shí),就會(huì)自動(dòng)調(diào)用相應(yīng)的設(shè)備驅(qū)動(dòng)。另外,該軟件需要一個(gè)圖形用戶界面來控制所用的函數(shù),這里采用vc++6.0來編制應(yīng)用程序,首先調(diào)用createfile()打開usb接口設(shè)備,獲得設(shè)備的句柄hdevice,然后計(jì)算機(jī)通過調(diào)用deviceiocontrol()函數(shù)向外設(shè)發(fā)出。部分程序如下:

myrequest的8個(gè)成員變量對(duì)應(yīng)固件配置setupbuf緩沖區(qū)中8字節(jié)的(setupdat)數(shù)據(jù),其中value的值表示了主機(jī)向dsp發(fā)送的命令類型(00/01/10),使dsp配合完成接收,處理及上傳的系統(tǒng)過程。

每次調(diào)用deviceiocontrol函數(shù)傳輸?shù)臄?shù)據(jù)量?jī)H為1kb。為了滿足大數(shù)據(jù)量或者整幀圖像數(shù)據(jù)傳輸?shù)囊螅枰h(huán)調(diào)用deviceiocontrol()函數(shù),以下載數(shù)據(jù)流的過程為例,循環(huán)體中的代碼如下:

buffer是主機(jī)發(fā)出數(shù)據(jù)塊的頭指針;pby為每次下傳數(shù)據(jù)塊的首地址,是隨著循環(huán)變量i遞增的值。同樣,上傳數(shù)據(jù)的過程中也有類似的存儲(chǔ)操作。

4 系統(tǒng)測(cè)試

利用圖像序列對(duì)此主從式聯(lián)機(jī)系統(tǒng)進(jìn)行測(cè)試。

觸發(fā)pc機(jī)上的界面控件(pa(0:1)=00),下載10幅經(jīng)不同程序噪聲污染的同一內(nèi)容的圖像,dsp檢測(cè)到通用外部中斷口ext_int6的信號(hào)(對(duì)應(yīng)usb芯片的pa3)讀入數(shù)據(jù)讀取命令類型,將10幀圖像數(shù)據(jù)存入sdram空間,之后,上位機(jī)繼續(xù)發(fā)出處理命令,dsp檢測(cè)到pa[0:1]=10對(duì)存儲(chǔ)的多幀圖像數(shù)據(jù)進(jìn)行累加平均,從而提高圖像的信噪比,在收到上傳命令(pa[0:1]=01)時(shí),dsp將處理完成的圖像回送至pc機(jī)顯示。

結(jié)語

本文詳細(xì)介紹了通過tms32c6713的emif擴(kuò)展usb接口的硬件連接、usb2.0固件程序和應(yīng)用程序的開發(fā)以及基于這種通信模式的小型聯(lián)機(jī)系統(tǒng)的構(gòu)成。經(jīng)實(shí)際驗(yàn)證,系統(tǒng)運(yùn)行可靠,是一種比較好的高速數(shù)據(jù)傳輸與處理的解決方案。



關(guān)鍵詞:

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉