, , ,
(1.中國(guó)科學(xué)院 國(guó)家空間科學(xué)中心, 北京 100190; 2.中國(guó)科學(xué)院大學(xué), 北京 100049)
基于USB接口的數(shù)據(jù)傳輸系統(tǒng)因其連接方便、配置靈活、即插即用和支持熱插拔等優(yōu)點(diǎn),在數(shù)據(jù)采集、自動(dòng)控制和電子測(cè)量等領(lǐng)域得到了廣泛地應(yīng)用[1]。Cypress公司的CY7C68013A是一款高速的USB2.0接口控制芯片[2],因其高度的集成性,而得到了廣泛的應(yīng)用。
CY7C68013A支持3種接口連接模式:端口模式、通用可編程接口GPIF主控模式和從器件FIFO模式。在端口模式中,所有的IO引腳均為通用的IO口,固件程序簡(jiǎn)單,數(shù)據(jù)傳輸需要CPU參與,傳輸速率較低。后兩種模式,外設(shè)直接連接內(nèi)部端點(diǎn)緩沖FIFO,不需要CPU參與,具有很高的傳輸速率。GPIF主控模式,CY7C68013A作為主控制器,固件程序復(fù)雜。從屬FIFO模式,CY7C68013A作為從器件被外部控制器訪問(wèn),固件程序簡(jiǎn)單,但需要外部控制器的時(shí)序控制,增加了硬件電路的復(fù)雜性。綜合以上3種模式的優(yōu)缺點(diǎn),在傳輸速率要求不高的場(chǎng)合,端口模式可作為一種有效的傳輸方式[3]。但對(duì)于端口模式,文獻(xiàn)中介紹較少[3-4]。針對(duì)這種情況,本文將介紹CY7C68013A端口模式下數(shù)據(jù)傳輸模塊的設(shè)計(jì),并重點(diǎn)介紹其通信協(xié)議設(shè)計(jì)和軟硬件設(shè)計(jì)。
系統(tǒng)的任務(wù)是設(shè)計(jì)一個(gè)通用的數(shù)據(jù)傳輸模塊,來(lái)實(shí)現(xiàn)計(jì)算機(jī)與低速實(shí)時(shí)傳輸和高速非實(shí)時(shí)傳輸外設(shè)之間的數(shù)據(jù)交互。對(duì)應(yīng)的系統(tǒng)連接框圖如圖1所示。上位機(jī)通過(guò)USB控制器接收外設(shè)接口電路發(fā)送的數(shù)據(jù),并進(jìn)行顯示和保存,實(shí)現(xiàn)對(duì)外設(shè)的實(shí)時(shí)監(jiān)測(cè);同時(shí)向外設(shè)發(fā)送命令數(shù)據(jù),實(shí)現(xiàn)對(duì)外設(shè)的功能控制。對(duì)應(yīng)各部分的具體功能描述如下:
上位機(jī)界面程序:控制系統(tǒng)的工作過(guò)程,顯示、保存接收的外設(shè)數(shù)據(jù),并向外設(shè)發(fā)送命令數(shù)據(jù)。
USB接口電路:實(shí)現(xiàn)PC機(jī)與USB接口控制芯片的物理連接。
USB接口控制芯片:采用CY7C68013A的端口模式實(shí)現(xiàn)與外部設(shè)備之間數(shù)據(jù)雙向傳輸。
串行EEPROM:采用24LC00提供設(shè)備的VID/PID,用于設(shè)備的枚舉和重枚舉。
外設(shè)接口電路:實(shí)現(xiàn)模塊與外設(shè)電路的連接,主要包含端口模式下與外設(shè)之間的通信協(xié)議信號(hào)。
其中,外設(shè)接口電路直接決定此數(shù)據(jù)傳輸模塊的可靠性,是設(shè)計(jì)的重點(diǎn),后面會(huì)給出詳細(xì)的設(shè)計(jì)介紹。
CY7C68013A在單芯片上集成了USB2.0收發(fā)器、智能串行接口引擎、增強(qiáng)型8051微處理器、16 KB軟配置RAM、4 KB端點(diǎn)緩沖區(qū)FIFO和可編程外設(shè)接口,主要用于USB主機(jī)與外設(shè)之間的數(shù)據(jù)傳輸。其中串行接口引擎用于完成大部分USB2.0協(xié)議的處理工作,通過(guò)USB收發(fā)器與USB主機(jī)進(jìn)行數(shù)據(jù)交互;可編程外設(shè)接口用于USB設(shè)備與外設(shè)之間的連接;4KBFIFO則作為數(shù)據(jù)緩沖區(qū),傳輸中的數(shù)據(jù)緩存,同時(shí)增加了吞吐量。
圖1 系統(tǒng)連接框圖
設(shè)計(jì)中,USB和外設(shè)之間通信的控制和狀態(tài)信號(hào)由IOA和IOD接口完成,IOB接口則用于通信的數(shù)據(jù)總線。同時(shí),設(shè)置EP2-FIFO為USB發(fā)送數(shù)據(jù)緩沖區(qū),EP6-FIFO為接收數(shù)據(jù)緩沖區(qū)。
端口模式下USB數(shù)據(jù)傳輸過(guò)程:
USB數(shù)據(jù)發(fā)送時(shí),CPU按照預(yù)定的通信協(xié)議讀取IO端口的數(shù)據(jù),并將數(shù)據(jù)存放在預(yù)發(fā)送的IN端點(diǎn)緩沖區(qū),將預(yù)發(fā)送的字節(jié)數(shù)寫入對(duì)應(yīng)的端點(diǎn)字節(jié)計(jì)數(shù)寄存器中,在接收到主機(jī)IN請(qǐng)求后,USB內(nèi)核將IN端點(diǎn)緩沖區(qū)的數(shù)據(jù)傳輸?shù)街鳈C(jī),主機(jī)將接收到的數(shù)據(jù)存放在內(nèi)存中,并通過(guò)讀取內(nèi)存來(lái)保存和顯示接收的數(shù)據(jù)。
USB數(shù)據(jù)接收時(shí),主機(jī)將預(yù)發(fā)送的數(shù)據(jù)寫入內(nèi)存中,并發(fā)送OUT請(qǐng)求,USB內(nèi)核在有空閑OUT端點(diǎn)緩沖區(qū)時(shí)接受OUT請(qǐng)求,并將接收的數(shù)據(jù)寫入預(yù)定義的OUT端點(diǎn)緩沖區(qū),CPU通過(guò)讀取對(duì)應(yīng)的端點(diǎn)字節(jié)計(jì)數(shù)寄存器來(lái)確定接收的字節(jié)數(shù),隨后按照預(yù)定義的通信協(xié)議將數(shù)據(jù)發(fā)送到IO端口,供外設(shè)讀取。
端口模式下的數(shù)據(jù)傳輸是通用IO口來(lái)實(shí)現(xiàn)的,為實(shí)現(xiàn)數(shù)據(jù)的可靠通信,必須對(duì)這些通用IO口賦予實(shí)際的意義,即制定通信協(xié)議。通信協(xié)議如下:
IOB7-IOB0被定義為8位的數(shù)據(jù)信號(hào);WRB(IOD[0])與WRB_ACK(IOA[1])、RDB(IOA[2])與RDB_ACK(IOD[2])被定義為單字節(jié)傳輸?shù)恼?qǐng)求/響應(yīng)信號(hào);IOA[7:3]與WR_ACK(IOA[0])、IOD[7:3]與RD_ACK(IOD[1])被定義數(shù)據(jù)傳輸?shù)恼?qǐng)求/響應(yīng)信號(hào)。主要的工作過(guò)程如下:
單字節(jié)數(shù)據(jù)請(qǐng)求/響應(yīng)式傳輸過(guò)程:在USB向外設(shè)發(fā)送單字節(jié)數(shù)據(jù)時(shí),USB首先將RDB信號(hào)置1,向外設(shè)發(fā)送寫數(shù)據(jù)請(qǐng)求,在接收到外設(shè)發(fā)送的寫應(yīng)答信號(hào)RDB_ACK為1后,將輸出端點(diǎn)緩沖區(qū)EP2FIFO中的單字節(jié)數(shù)據(jù)寫入8位的數(shù)據(jù)端口,并撤銷請(qǐng)求信號(hào)RDB為0,通知外設(shè)讀取數(shù)據(jù),當(dāng)檢測(cè)到RDB_ACK信號(hào)為0時(shí),表明外設(shè)成功接收數(shù)據(jù),開始準(zhǔn)備發(fā)送下一字節(jié)數(shù)據(jù)。同理,在USB接收外設(shè)發(fā)送的單字節(jié)數(shù)據(jù)時(shí),USB在接收到外設(shè)請(qǐng)求信號(hào)WRB為1后,將寫應(yīng)答信號(hào)WRB_ACK置1,通知外設(shè)發(fā)送數(shù)據(jù),在檢測(cè)到WRB信號(hào)為0時(shí),將數(shù)據(jù)端口數(shù)據(jù)寫入數(shù)據(jù)端點(diǎn)緩沖區(qū)EP6FIFO,完成后將WRB_ACK置0,通知外設(shè)數(shù)據(jù)接收成功,開始準(zhǔn)備接收下一字節(jié)數(shù)據(jù)。
數(shù)據(jù)傳輸過(guò)程同樣采用上述的請(qǐng)求/響應(yīng)式傳輸方式,采用RD和IOA[7:3]作為USB接收外設(shè)數(shù)據(jù)的控制信號(hào),同理采用IOD[7:3]和WR_ACK作為USB向外設(shè)發(fā)送數(shù)據(jù)的控制信號(hào)。IOA[7:3]和IOD[7:3]在作為數(shù)據(jù)接收應(yīng)答和數(shù)據(jù)發(fā)送請(qǐng)求信號(hào)的同時(shí),還可利用其不同邏輯組合來(lái)實(shí)現(xiàn)不同類型數(shù)據(jù)的傳輸,最多可支持31種不同數(shù)據(jù)傳輸。
如上所述,采用請(qǐng)求/響應(yīng)式數(shù)據(jù)傳輸方式,保障了數(shù)據(jù)傳輸?shù)倪B續(xù)性和可靠性,不僅適用于低速傳輸外設(shè),同樣適用于高速非實(shí)時(shí)傳輸外設(shè)。同時(shí),借助不同的邏輯組合實(shí)現(xiàn)不同類型的數(shù)據(jù)傳輸,拓展了可適用范圍。
根據(jù)上述USB與外設(shè)之間的通信協(xié)議,對(duì)應(yīng)的外設(shè)接口電路設(shè)計(jì)圖如圖2所示。采用端點(diǎn)EP2為發(fā)送緩沖,端點(diǎn)EP6為接收緩沖。
圖2 外設(shè)接口電路設(shè)計(jì)圖
系統(tǒng)軟件設(shè)計(jì)包括固件設(shè)計(jì)、驅(qū)動(dòng)程序設(shè)計(jì)和上位機(jī)界面程序設(shè)計(jì)三部分。這三部分之間的關(guān)系如圖3所示,應(yīng)用程序通過(guò)CyAPI.lib庫(kù)對(duì)Win32子系統(tǒng)進(jìn)行Win32 API調(diào)用,用于訪問(wèn)設(shè)備驅(qū)動(dòng)程序,從而與固件程序進(jìn)行通信。
圖3 系統(tǒng)軟件組成
端口模式下的數(shù)據(jù)傳輸需要固件程序的參與,所以固件程序主要實(shí)現(xiàn)兩方面的功能:一方面用于響應(yīng)USB主機(jī)請(qǐng)求,另一方面用于實(shí)現(xiàn)USB設(shè)備與外設(shè)之間的數(shù)據(jù)通信。
設(shè)計(jì)中的固件程序設(shè)計(jì)是借助Cypress公司提供的EZ-USB FX2LP軟件開發(fā)包完成的。開發(fā)包中的固件框架提供了完備的框架函數(shù)和程序代碼,極大地簡(jiǎn)化和加速USB外設(shè)的開發(fā)。框架流程如圖4所示,主要包括USB設(shè)備初始化、設(shè)備重枚舉、外設(shè)功能函數(shù)、USB主機(jī)請(qǐng)求響應(yīng)和電源管理等,對(duì)于框架流程在文獻(xiàn)[5]中有詳細(xì)描述,這里不再贅述。由于固件框架中已經(jīng)包含了USB主機(jī)請(qǐng)求響應(yīng)函數(shù),故在固件程序設(shè)計(jì)中主要完成USB設(shè)備與外設(shè)之間的數(shù)據(jù)通信,包括初始化程序設(shè)計(jì)和通信程序設(shè)計(jì)兩部分。
圖4 固件框架流程圖
3.1.1 主要寄存器及功能描述
端口模式下,與固件程序相關(guān)的寄存器及功能描述如表1所示。CPUCS用于選擇CPU工作時(shí)鐘,可選時(shí)鐘頻率為12/24/48 MHz,設(shè)計(jì)中為提高傳輸速率、增加吞吐量,選擇時(shí)鐘頻率為48 MHz。IFCONFIG用于選擇端口模式。EPxCFG用于配置端點(diǎn)方向和對(duì)應(yīng)緩沖區(qū)大小,配置端點(diǎn)EP2為OUT,EP6為IN;為增加吞吐量,將端點(diǎn)EP2和EP6均設(shè)為4倍緩沖,同時(shí)設(shè)置端點(diǎn)EP4和EP8為無(wú)效。AUTOPTRSETUP用于配置自動(dòng)指針,通過(guò)使能自動(dòng)指針和地址自加,實(shí)現(xiàn)對(duì)數(shù)據(jù)緩沖區(qū)的快速訪問(wèn)。關(guān)于其他寄存器的位定義和功能描述可參考文獻(xiàn)[2]。
表1 與固件程序相關(guān)的寄存器及功能描述
3.1.2 初始化程序設(shè)計(jì)
初始化程序設(shè)計(jì)是指對(duì)變量、USB內(nèi)部狀態(tài)和相關(guān)寄存器的初始化,主要包括選擇時(shí)鐘頻率、設(shè)置接口模式、端點(diǎn)和端口以及使能自動(dòng)指針等操作。對(duì)應(yīng)軟件程序在框架函數(shù)TD_Init()中完成,其主要代碼如下:
TD_Init(void)
{ ---
CPUCS = 0x12;//設(shè)置CPU頻率為48MHz
SYNCDELAY;
IFCONFIG |= 0x40;//選擇端口模式
SYNCDELAY;
EP2CFG = 0xA0;//配置EP2為4倍的OUT
端點(diǎn),端點(diǎn)大小為512字節(jié)
SYNCDELAY;
EP6CFG = 0xE0;//配置EP6為4倍的IN端點(diǎn),端點(diǎn)大小為512字節(jié)
SYNCDELAY;
EP4CFG = 0x02;//配置PE4端點(diǎn)無(wú)效
SYNCDELAY;
EP8CFG = 0x02;//配置EP8端點(diǎn)無(wú)效
SYNCDELAY;
OEA =0x00;//配置IOA[7:0]為輸出端口
SYNCDELAY;
OED =0x00;//配置IOD[7:0]為輸入端口
SYNCDELAY;
AUTOPTRSETUP |= 0x01;//使能自動(dòng)指針
}
3.1.3 通信程序設(shè)計(jì)
根據(jù)2.3節(jié)描述的通信協(xié)議,對(duì)應(yīng)通信程序主要工作流程如圖5所示,對(duì)應(yīng)軟件程序在框架函數(shù)TD_Poll()完成。下面給出USB作為接收端,接收外設(shè)發(fā)送的數(shù)據(jù),并提交給上位機(jī)的主要程序代碼。而USB作為發(fā)送端與其作為接收端類似,這里不再給出詳細(xì)的程序代碼。
圖5 通信程序主要工作流程
void TD_Poll(void){ if(IOD & 0x80)//根據(jù)IOD[7:3]判斷不同的數(shù)據(jù)請(qǐng)求類型
{ if(!(EP2468STAT & bmEP6FULL))//判斷EP6 IN端點(diǎn)緩沖是否已滿,若不滿,則接收數(shù)據(jù)
{ AUTOPTRH1= MSB( &EP6FIFOBUF );//將EP6FIFOBUF地址賦值給自動(dòng)指針
AUTOPTRL1= LSB( &EP6FIFOBUF );
IOA |= 0x01;//IOA[0]表示W(wǎng)R_ACK,將其置1,同意外設(shè)發(fā)送數(shù)據(jù)
for( i = 0x00; i < 512;)//接收字節(jié)數(shù)i初始化
{ while(!(IOD& 0x01));//IOD[0]表示W(wǎng)RB,檢測(cè)單字節(jié)發(fā)送請(qǐng)求
IOA |= 0x02;//IOA[1]表示W(wǎng)RB_ACK,將其置1,同意單字節(jié)發(fā)送請(qǐng)求
while(IOD& 0x01);//IOD[0]表示W(wǎng)RB,判斷是否可以讀取數(shù)據(jù)
EXTAUTODAT1 = IOB;//讀取端口數(shù)據(jù)IOB[7:0]
IOA &= 0xFD;//IOA[1]表示W(wǎng)RB_ACK,將其置0,為接收下一字節(jié)做準(zhǔn)備
i++;//接收字節(jié)數(shù)加1
if(IOD & 0x80)//根據(jù)IOD[7:3]判斷數(shù)據(jù)發(fā)送請(qǐng)求是否結(jié)束
;//繼續(xù)循環(huán)
else
{ IOA&= 0xFE;//IOA[0]表示W(wǎng)R_ACK,將其置0,為接收下一數(shù)據(jù)做準(zhǔn)備
break;//跳出循環(huán),結(jié)束接收數(shù)據(jù)操作
}
}
EP6BCH = i/256;//向上位機(jī)提交IN包
SYNCDELAY;
EP6BCL = i%256;
}
}
}
驅(qū)動(dòng)程序保證了應(yīng)用程序?qū)SB設(shè)備的正常訪問(wèn)。Windows的USB驅(qū)動(dòng)遵循Win32驅(qū)動(dòng)模式,采用分層驅(qū)動(dòng)模型,包括設(shè)備驅(qū)動(dòng)層和總線驅(qū)動(dòng)層。其中設(shè)備驅(qū)動(dòng)包含USB通信協(xié)議細(xì)節(jié),用于實(shí)現(xiàn)應(yīng)用程序與USB設(shè)備通信;總線驅(qū)動(dòng)由根集線器驅(qū)動(dòng)、總線類驅(qū)動(dòng)和主機(jī)控制器驅(qū)動(dòng)組成,用于傳遞總線通信,并最終實(shí)現(xiàn)USB主機(jī)與USB設(shè)備連接。圖3表明了對(duì)應(yīng)驅(qū)動(dòng)在USB通信中的連接關(guān)系。其中總線驅(qū)動(dòng)由操作系統(tǒng)提供,不需要開發(fā)者編寫,故在驅(qū)動(dòng)程序設(shè)計(jì)中只需完成設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)。
Cypress公司提供了通用的USB驅(qū)動(dòng)程序,包括固件下載驅(qū)動(dòng)CyLoad.sys和通用驅(qū)動(dòng)Cyload.sys兩部分。其中固件下載驅(qū)動(dòng)用于固件程序下載,通用驅(qū)動(dòng)則用于主機(jī)與固件之間的通信。固件下載驅(qū)動(dòng)在USB設(shè)備自枚舉之后進(jìn)行固件下載,然后按照固件程序進(jìn)行設(shè)備重枚舉,重枚舉之后在通用驅(qū)動(dòng)下完成USB設(shè)備通信。設(shè)計(jì)中,為確保USB設(shè)備具有唯一的設(shè)備VID和PID,將對(duì)應(yīng)設(shè)備信息文件CyLoad.inf和CyLoad.inf文件中的VID/PID均設(shè)置為0x04B4/0x00F0。
上位機(jī)界面程序一方面向外設(shè)發(fā)送命令數(shù)據(jù);另一方面接收外設(shè)數(shù)據(jù),并進(jìn)行顯示和保存。Cypress公司提供的USB主機(jī)控制函數(shù)庫(kù)CyAPI.lib可實(shí)現(xiàn)Visual C++環(huán)境下對(duì)USB設(shè)備的讀寫。在使用Cypress公司提供的驅(qū)動(dòng)程序的基礎(chǔ)上,只需在主機(jī)程序中加入頭文件CyAPI.h和庫(kù)文件CyAPI.lib,然后便可以調(diào)用相應(yīng)的控制函數(shù)。
界面程序主要分為四部分:1)USB設(shè)備連接檢測(cè)和選擇。通過(guò)Isopen來(lái)檢測(cè)USB設(shè)備連接,并根據(jù)設(shè)備PID/VID選擇需要通信的USB設(shè)備。2)數(shù)據(jù)接收操作。通過(guò)“Start”按鈕,開啟數(shù)據(jù)接收主進(jìn)程,并利用多線程實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)接收、顯示和保存。再次點(diǎn)擊此按鈕,結(jié)束數(shù)據(jù)接收操作。3)數(shù)據(jù)發(fā)送操作。將預(yù)發(fā)送的數(shù)據(jù)以文件的形式保存,通過(guò)組合框控件,選擇相應(yīng)的數(shù)據(jù)發(fā)送操作,同時(shí)記錄已發(fā)送的數(shù)據(jù),以備后期查看。4)輔助功能。輔助功能主要包括數(shù)據(jù)保存時(shí)間間隔設(shè)置、接收數(shù)據(jù)文件保存目錄設(shè)置和發(fā)送數(shù)據(jù)編輯等。表2對(duì)實(shí)現(xiàn)界面程序主要操作和功能的方法作了詳細(xì)介紹。
在模塊測(cè)試中,將FPGA發(fā)送的數(shù)據(jù)作為外設(shè)數(shù)據(jù)來(lái)源,F(xiàn)PGA以00-3F的遞增數(shù)據(jù)作為一個(gè)數(shù)據(jù)包,循環(huán)發(fā)送數(shù)據(jù)。利用此傳輸模塊來(lái)接收FPGA發(fā)送的數(shù)據(jù)包,接收保存的數(shù)據(jù)包內(nèi)容如圖6所示。表明系統(tǒng)可正確保存接收到的數(shù)據(jù)。數(shù)據(jù)傳輸中界面狀態(tài),編輯框?qū)崟r(shí)顯示接收的數(shù)據(jù),滿足了系統(tǒng)接收數(shù)據(jù)顯示的功能要求。實(shí)驗(yàn)結(jié)果表明,可以準(zhǔn)確無(wú)誤地實(shí)現(xiàn)接收數(shù)據(jù)的顯示和保證操作,滿足外設(shè)數(shù)據(jù)傳輸要求。
表2 上位機(jī)界面程序主要操作和功能
圖6 模塊接收保存的遞增數(shù)據(jù)
采用CY7C68013A的數(shù)據(jù)傳輸模塊,集成了USB的諸多優(yōu)點(diǎn)。利用其軟配置特性,保證了模塊的可拓展性;利用其熱插拔和即插即用特性,保證了模塊的實(shí)用性;采用端口模式,縮短了開發(fā)周期;采用命令/響應(yīng)式的傳輸方式,保證了數(shù)據(jù)傳輸?shù)倪B續(xù)性和可靠性。針對(duì)于低速實(shí)時(shí)傳輸和高速非實(shí)時(shí)傳輸?shù)耐庠O(shè),此傳輸模塊均為一種有效的選擇方案,具有很高的實(shí)用價(jià)值。同時(shí),也為USB其他接口模式的開發(fā)提供了借鑒意義。
[1] 張少真,崔小虹,殷 聰,等. 激光匯聚原子系統(tǒng)中基于USB接口的數(shù)據(jù)采集[J]. 電子測(cè)量技術(shù),2015,38(04):136-140.
[2]Cypress. EZ-USB Technical Reference[Z].2014.
[3]袁 衛(wèi),趙小明,張建奇. Ports模式下CY7C68013和FPGA的數(shù)據(jù)通信[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2006(7):49-51.
[4]寇 靜. 基于端口模式的CY7C68013固件程序設(shè)計(jì)[J]. 微計(jì)算機(jī)信息,2010(5):116-117.
[5]錢 峰. EZ-USB FX2單片機(jī)原理、編程及應(yīng)用[M]. 北京:北京航空航天大學(xué)出版社,2006.
[6]Compaq,Intel,and LucentUniversal et al. Serial Bus Specification Revision 2.0[S],2000
[7]臧金梅,李 國(guó),安文龍,等. 基于CY7C68013的高速數(shù)據(jù)傳輸模塊設(shè)計(jì)[J]. 微計(jì)算機(jī)信息,2008,(27):110-111.
[8]韋 飛,王世金. 基于USB技術(shù)的通用I/O控制和數(shù)據(jù)傳輸模塊設(shè)計(jì)[J]. 數(shù)據(jù)采集與處理,2003,18(2):232-237.
[9]周 槃,姜書艷,蔡榮海等. 基于WDM的通用串行接口驅(qū)動(dòng)程序設(shè)計(jì)——Cypress68013芯片驅(qū)動(dòng)設(shè)計(jì)[J]. 儀器儀表學(xué)報(bào),2005,26(8):596-598.
[10]Jan Axelson. USB大全[M]. 北京:中國(guó)電力出版社,2001.