DSP即數(shù)字信號處理器,由于其采用特殊的軟硬件結構特別適合于數(shù)字信號處理運算,己成為通信、計算機、消費電子、自動控制等領域的基礎器件。DSP將是未來集成電路中發(fā)展最快的電子產品。
USB(Universal Serial Bus)即通用串行總線,是一種高速的接口技術,它的主要特點是傳輸速度高、支持熱拔插并且最多同時支持127個外設等,USB1.1的理論速度可以達到12Mb/s,USB2.0的速度可以達到480Mb/s,可以很好的解決嵌入式系統(tǒng)與PC機之間大數(shù)據(jù)量的傳輸,成為應用極為廣泛的PC機與外圍設備之間的接口標準。完整的USB系統(tǒng)通常包括三部分:具有USB接口的PC,能夠支持USB的系統(tǒng)軟件和使用USB接口的設備。本次設計就是要在一個采用TMS320F2407A實現(xiàn)電機控制的多路數(shù)據(jù)采集與處理系統(tǒng)上加上一個USB1.1的接口,以實現(xiàn)2407與上位機PC之間高效、快速、方便的傳輸數(shù)據(jù)。
1 TMS320F2407A DSP芯片和AN2131Q USB接口芯片介紹
TMS320F2407A是美國德州儀器(TI)公司生產的一款應用于數(shù)字控制和信號處理領域的高性能定點DSP芯片,是TI 2000系列DSP中應用較成熟的一款, 內核為16位的定點DSP CPU,具有低成本、低功耗、高速運算能力,采用高性能靜態(tài)CMOS技術,供電電壓為3.3V,指令周期可達25 ns,片內集成了多種外設模塊及存儲器,如串行通信接口 (SCI)、16位的同步串行外圍接口(SPI)、CAN通信模塊以及32K字的FLASH存儲器,構成了真正的單芯片控制器,具有很高的性價比,得到了廣泛的應用,如由電機控制的數(shù)據(jù)采集系統(tǒng)、測控儀表、運動控制等領域,采用這款芯片開發(fā)的嵌入式系統(tǒng),一般都以串口與上位機通信,速度太慢,所以在本次設計中為了提高通信速度,采用Cypress公司的AN2131Q USB接口芯片,它的結構如圖1。
AN2131Q是Cypress公司推出的一款自帶微處理器的USB接口芯片,性能特點如下:
(1)支持全速和低速USB傳輸,有3個8位的IO端口,獨立的8位數(shù)據(jù)總線和獨立的16位地址總線,片內嵌有一款增強型的8051微處理器,每4個時鐘周期就可以執(zhí)行一條指令,比標準的8051快了3倍。
(2)IO端口、數(shù)據(jù)總線、地址總線都是互相獨立的,方便擴展存儲器,通過數(shù)據(jù)總線和外部交換數(shù)據(jù)速率非常快,最快可以達到12Mbit/s。AN2131Q支持控制傳輸,中斷傳輸,批量傳輸和同步傳輸。
圖1 AN2131Q的結構框圖
(3)AN2131Q片內沒有ROM,固件存儲在主機上,芯片上電后枚舉過程完全是由硬件自動完成的,枚舉完成后作為一個USB設備與主機通信下載固件(firmware),下載完成后,8051脫離復位狀態(tài)執(zhí)行固件程序,可以通過固件對USB接口進行再枚舉,這種軟配置可以方便的對產品進行升級。
(4)USB1.1協(xié)議比較復雜,直接從底層開發(fā)難度很大,AN2131Q的片上串行接口引擎(SIE)可以自動完成包排序,信號產生及檢測,CRC產生及校驗,位填充以及包標示產生及解碼等大部分的協(xié)議操作,使開發(fā)人員擺脫了復雜的協(xié)議細節(jié),加快了開發(fā)進程。
2 系統(tǒng)設計及USB模塊設計
系統(tǒng)工作原理如下:上位機通過USB接口發(fā)送命令,DSP接收命令后,通過電機轉動控制信息源,CPLD譯碼,DSP讀取各個AD轉換的數(shù)據(jù)進行初步處理、壓縮后通過USB接口傳給上位機應用軟件。系統(tǒng)框架如圖2。
圖2 系統(tǒng)整體功能框圖
本次設計主要是在已有系統(tǒng)的基礎上加上USB接口,用到了USB的控制傳輸和批量(BULK)傳輸模式,控制傳輸利用端點0接收主機的控制信息或發(fā)送設備狀態(tài)信息。數(shù)據(jù)傳輸用批量傳輸,包括IN和OUT兩種操作。
(1)BULK IN 數(shù)據(jù)從設備發(fā)向主機
主機向AN2131Q內核發(fā)送IN標志,請求IN傳輸,AN2131Q準備好數(shù)據(jù)后響應IN請求,8051內核裝載端點字節(jié)計數(shù)器表明數(shù)據(jù)已準備好,如未準備好,則AN2131Q內核以NAK響應主機,當主機發(fā)送一個表示數(shù)據(jù)接收正確的確認信號ACK,AN2131清端點標志位BUSY,通知8051緩沖器為空,為下一次傳輸做準備。
(2)BULK OUT 數(shù)據(jù)從主機發(fā)往USB設備
主機發(fā)出OUT信號和要發(fā)送的數(shù)據(jù)包。如AN2131Q正確接收,返回ACK,如沒有正確接收返回NAK,同時主機繼續(xù)發(fā)送OUT數(shù)據(jù),直到AN2131Q返回ACK,每個OUT端點都有一個字節(jié)計數(shù)器可以讓8051知道字節(jié)數(shù)和是否已經(jīng)完成讀取操作,為下一次OUT做準備。
3 AN2131Q的硬件連接
為了提高DSP和AN2131Q之間的傳輸速度,采用了兩片F(xiàn)IFO芯片,解決了傳輸?shù)钠款i問題。DSP用IO口訪問FIFO。AN2131Q用數(shù)據(jù)線和FIFO連接。FIFO有三種狀態(tài)空(EF)、半滿(HF)、滿(FF)都是低有效信號,當讀取FIFO時首先檢查EF狀態(tài),只有為高電平才可以讀取,寫入時檢查HF狀態(tài),若為無效狀態(tài)就說明數(shù)據(jù)還不到半滿可以寫入大小為FIFO容量一半的數(shù)據(jù)包。合理利用這三個狀態(tài)信號可以提高傳輸效率,F(xiàn)IFO芯片采用IDT72V02,容量為1K×9Bit。AN2131Q的工作電壓為3.3V,它的接地引腳5、6、13、14、72要通過1k電阻接地。SCL、SDA管腳要通過2.2k電阻上拉,不能懸空WAKEUP引腳,USB+、USB-要通過2個24歐的電阻接D+、D-以降低干擾。
4 軟件設計
本接口的軟件設計主要包括USB固件及USB設備的驅動,固件是USB設備運行的核心主要完成以下功能:
(1)完成AN2131Q內核及外圍設備的配置,讓上層USB設備驅動程序知道USB設備的能力。
(2)完成DSP與AN2131Q的通信,主機與AN2131Q的通信。DSP通過讀寫FIFO芯片與AN2131Q通信,AN2131Q通過讀寫FIFO與主機PC通信。
根據(jù)AN2131的存儲空間和運行速度,選擇51系列C語言編寫固件代碼。根據(jù)CYPRESS公司提供的固件程序框架,通過這個框架可以總結出自己的固件程序框架,主要包括設備描述符信息,設備功能代碼,和通信控制功能代碼框架如下:
(1)配置AN2131Q的外圍設備信息和通信管道。下面代碼完成AN2131Q的初始化后進入主循環(huán),檢測是否有主機命令,如果收到命令,置CmdFlag為TURE,處理主機命令,然后CmdFlag被置為FALSE。
…
Initial() //AN2131Q初始化配置
While(TURE)//進入無限循環(huán)
{
If(CmdFlag)//是否收到主機命令
{
SetupCmd();//執(zhí)行Setup包里的命令,設備描述符信息
CmdFlag=FALSE;
}
…//CPU其他動作
}
(2)通信管道的初始化
通道即端點與PC之間建立的鏈路,使能通信端點。
(3)數(shù)據(jù)收發(fā)
USB設備向主機發(fā)送信息和接收主機信息都是以數(shù)據(jù)包為單位,下面以輸入端點2和輸出端點2為例說明數(shù)據(jù)的收發(fā)過程。
向主機發(fā)送數(shù)據(jù):
InputEndpointInt( )
{
If((IN2CS&0x02)!=0x02)//輸出緩沖區(qū)是否為空
{
DataNum=PacketNum;//讀取數(shù)據(jù)包個數(shù)
for(i=0;i<DataNum;i++)
{…}// 寫入緩沖區(qū)
IN2BC=DataNum;//設置數(shù)據(jù)包大小寄存器
}
…
}
主機發(fā)送數(shù)據(jù):
OutputEndpointInt( )
{
If((OUT3CS&0x02)!=0x02)//輸入緩沖區(qū)是否為空
{
DataNum=OUT3BC;//取得輸入數(shù)據(jù)包大小
for(i=0;i<DataNum;i++)
{…}//從緩沖區(qū)讀出
OUT3BC=0;//數(shù)據(jù)包大小寄存器清0
}
…
}
在設備連接時,固件由專門的裝載驅動程序自動裝載到設備。固件捆綁在裝載驅動程序之中。USB設備驅動程序給上層應用軟件提供接口,一方面又直接和底層固件進行通信。USB設備的驅動程序的設計中采用了CYPRESS公司的通用驅動程序ezusbsys.sys,此通用設備驅動程序只能執(zhí)行一些標準的USB設備請求和數(shù)據(jù)傳輸,根據(jù)本次設計的需要在這個模塊的基礎上進行了一些擴充,重新用WDM DDK生成驅動程序滿足了設計的需要。
5 結束語
本系統(tǒng)最終實現(xiàn)了DSP的USB接口,經(jīng)過實驗,與上位機通信的速率可達4Mbit/s,系統(tǒng)采用串口和上位機通信的時候速度最高才為幾十kbps。速度提高了上百倍,滿足了本信息采集與處理系統(tǒng)的要求。通過該系統(tǒng)的實現(xiàn),證明了用USB接口實現(xiàn)上、下位機通信的優(yōu)越性。
參考文獻
[1] Universal Serial Bus Specification [S]. Compaq、Intel、Microsoft、NEC、Revision,
September 23,1998
[2] Cypress Semiconductor. AN2131Q Technical Reference Manual [Z].
San Jose,CA,US:Cypress Semiconductor,2000
[3] Axelson Jan. 陳 逸譯.USB大全.北京:中國電力出版社,2001
[4] TMS320F2407A DSP Datasheet. TI,1999
[5] 許永和.USB外圍設備設計與應用.北京:中國電力出版社,2002
作者簡介:趙迎輝(1981-),男,西南交通大學信息科學與技術學院2003級研究生,研究方向