RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于SPCE061A和PDIUSBD12USB接口芯片實(shí)現(xiàn)設(shè)備系統(tǒng)的設(shè)計(jì)

電子設(shè)計(jì) ? 來源:蘭州文理學(xué)院學(xué)報(bào)(自然科 ? 作者:賈志城,陳乖麗 ? 2021-06-23 14:18 ? 次閱讀

USB(Universal Serial Bus)是通用串行總線。最初USB是由Compaq、Digital、IBM、Intel、Microsoft、NEC以及Northern Telecom(北方電信公司)七家公司共同開發(fā)的一種新的外設(shè)連接技術(shù)。諸家公司聯(lián)合提出這一新型總線,是為了解決PC機(jī)外圍設(shè)備的擁擠和提高設(shè)備的傳輸速度。目前普遍采用的USB1.1主要應(yīng)用在中低速外部設(shè)備上,它提供的傳輸速度有低速1.5Mbps和全速 12Mbps兩種??鄢糜诳偩€狀態(tài)、控制和錯(cuò)誤監(jiān)測等的數(shù)據(jù)傳輸,USB的最大理論傳輸速率仍達(dá)1.2Mb/s或9.6Mb/s,遠(yuǎn)高于一般的串行總線接口?,F(xiàn)有的USB外設(shè)有:數(shù)字照相機(jī)、音箱、游戲桿、調(diào)制解調(diào)器、鍵盤、鼠標(biāo)、掃描儀、打印機(jī)、光驅(qū)、軟驅(qū)等。1998年后隨著微軟在Windows98中內(nèi)置了對(duì)USB接口的支持模塊,加上 USB設(shè)備的日漸增多,USB逐步走進(jìn)了實(shí)用階段、以驚人的速度發(fā)展。

由于現(xiàn)在市面上新出一款單片機(jī)SPCE061A,它非常有特色。本文主要介紹,利用SPCE061A和USB接口芯片PDIUSBD12來開發(fā)USB設(shè)備。SPCE061A單片機(jī)由臺(tái)灣凌陽公司制造,SPCE061A單片機(jī)款式新穎,而且性價(jià)比極高。 SPCE061A在2.6V“3.6V工作電壓范圍內(nèi)的工作速度范圍為0.32MHz”49.152MHz;2K字SRAM和32K字FLASH僅占一頁存儲(chǔ)空間;32位可編程的多功能I/O端口;兩個(gè)16位定時(shí)器/計(jì)數(shù)器;低電壓復(fù)位/監(jiān)測功能;8通道10位模/數(shù)轉(zhuǎn)換輸入功能并具有內(nèi)置自動(dòng)增益控制功能的麥克風(fēng)輸入方式;雙通道10位DAC方式的音頻輸出功能;指令系統(tǒng)提供具有較高運(yùn)算速度的16位%26;#215;16位的乘法運(yùn)算指令和內(nèi)積運(yùn)算指令,為其應(yīng)用增添了DSP功能。..。.。較高的處理速度使SPCE061A能夠非常容易地、快速地處理復(fù)雜的數(shù)字信號(hào)。開發(fā)數(shù)字聲音和語音識(shí)別產(chǎn)品,選擇SPCE061A是一種最經(jīng)濟(jì)的選擇。

本文所設(shè)計(jì)的USB設(shè)備系統(tǒng)的功能比較簡單,它主要實(shí)現(xiàn)SPCE061A與PC機(jī)之間的簡單通訊,是SPCE061A單片機(jī)的一種基本應(yīng)用。這篇文章的主要目的是希望能夠給讀者起拋磚引玉的作用,開發(fā)者可以在這個(gè)基礎(chǔ)上修改程序,輕松實(shí)現(xiàn)USB設(shè)備系統(tǒng)開發(fā)。本文所設(shè)計(jì)的系統(tǒng)具有三種簡單功能:1.檢測USB外設(shè)是否連接成功。 2.通過點(diǎn)擊PC端的應(yīng)用軟件上的按鈕,可以點(diǎn)亮或熄滅與SPCE061A單片機(jī)IO口相連的LED燈。3.應(yīng)用軟件發(fā)送任意字符串到SPCE061A,SPCE061A接受、回送字符串,應(yīng)用軟件接受到字符串時(shí),能夠?qū)⑺@示出來。

4.1系統(tǒng)組成

本USB通訊系統(tǒng),主要由凌陽十六位單片機(jī)SPCE061A,Philips公司的USB接口芯片PDIUSBD12組成,系統(tǒng)框圖如圖3.10所示。

這個(gè)系統(tǒng)的基本工作流程為:PC端應(yīng)用軟件,發(fā)送ID0(為了使主機(jī)和設(shè)備方能同步,該系統(tǒng)定義了三個(gè)握手ID:ID0,ID1,ID2。)給PDIUSBD12,PDIUSBD12接收數(shù)據(jù),產(chǎn)生中斷通知SPCE061A單片機(jī)讀取數(shù)據(jù)。SPCE061A如果讀取的數(shù)據(jù)為ID0,那么發(fā)送ID0給PDIUSBD12;PC機(jī)端應(yīng)用軟件發(fā)送完數(shù)據(jù)后,讀取外設(shè)發(fā)送的數(shù)據(jù),如果讀到的數(shù)據(jù)為ID0,那么彈出一個(gè)提示框,提示USB外設(shè)連接成功。此后PC機(jī)端的應(yīng)用軟件和USB外設(shè)之間的通訊都是通過ID來進(jìn)行的。

4.2硬件設(shè)計(jì)

系統(tǒng)電路原理圖如圖3.11所示。其中PDIUSBD12用作實(shí)現(xiàn)PC機(jī)與SPCE061A單片機(jī)進(jìn)行通信的高速通用并行接口。USB協(xié)議層的相關(guān)通訊協(xié)議通過PDIUSBD12來實(shí)現(xiàn),它由硬件實(shí)現(xiàn)不需要固件的參與。SPCE061A單片機(jī)的主要作用:1.windows系統(tǒng)配置、枚舉USB外設(shè)時(shí),SPCE061A發(fā)送、接收相關(guān)的USB設(shè)備信息。2. windows系統(tǒng)配置、枚舉USB外設(shè)成功后,根據(jù)接收到的ID,進(jìn)行相應(yīng)的操作,起控制作用。

SPCE061A內(nèi)嵌32K的FLASH的存儲(chǔ)空間、14個(gè)中斷源,它在2.6“3.6V的工作電壓范圍內(nèi)的工作速率范圍為0.32MHz~49MHz,這使得它有較高的速率和存儲(chǔ)空間來應(yīng)付USB通訊。單片機(jī)SPCE061A與PDIUSBD12之間通訊采用中斷方式,數(shù)據(jù)交換主要是靠SPCE061A單片機(jī)給PDIUSBD12發(fā)命令和數(shù)據(jù)來實(shí)現(xiàn)的。

PDIUSBD12通過這種方式來識(shí)別命令和數(shù)據(jù):在ALE信號(hào)的下降沿時(shí)鎖定地址,如果是奇地址,那么它接收的是命令;如果是偶地址,那么它發(fā)送或接收的是數(shù)據(jù)。PDIUSBD12的中斷寄存器只要不為0,它的中斷輸出引腳(INT_N)就保持低電平,所以系統(tǒng)初始化時(shí)可將SPCE061A單片機(jī)的外部中斷(下降沿觸發(fā))引腳IOB2設(shè)置為帶上拉電阻輸入。當(dāng)PDIUSBD12的中斷寄存器由零變?yōu)榉橇銜r(shí),馬上觸發(fā)SPCE061A的外部中斷,SPCE061A單片機(jī)在中斷處理時(shí),讀取PDIUSBD12芯片的狀態(tài)寄存器以清除中斷寄存器中對(duì)應(yīng)位,使得中斷引腳變?yōu)楦唠娖健_@樣使得SPCE061A可以在退出中斷后,可隨時(shí)響應(yīng)外部中斷。

圖3.11中的LED1燈非常有用,它是PDIUSBD12的GOODLINK指示燈,在系統(tǒng)枚舉時(shí)會(huì)根據(jù)通信的狀況間歇閃爍,當(dāng)PDIUSBD12被枚舉和配置成功后,將一直點(diǎn)亮。隨后在USB通信時(shí)會(huì)閃爍,這對(duì)調(diào)試非常有用。

4.3軟件設(shè)計(jì)

USB設(shè)備的軟件設(shè)計(jì)主要包括兩部分:一、USB設(shè)備端的單片機(jī)軟件,主要完成USB協(xié)議處理與數(shù)據(jù)交換。二、PC端的程序,由USB驅(qū)動(dòng)程序和用戶服務(wù)程序兩部分組成,用戶服務(wù)程序通過USB驅(qū)動(dòng)程序通信,由系統(tǒng)完成USB協(xié)議的處理與數(shù)據(jù)傳輸。

該系統(tǒng)單片機(jī)端的軟件流程如圖3.12所示。SPCE061A單片機(jī)控制程序由三部分組成:第一、初始化SPCE061A和PDIUSBD12。 第二、主循環(huán)部分,主要任務(wù)是判斷標(biāo)志位是否改變,如果改變則執(zhí)行相應(yīng)的程序,否則一直循環(huán)等待中斷。第三、中斷服務(wù)程序,主要任務(wù)是接收、發(fā)送數(shù)據(jù),設(shè)置相應(yīng)的標(biāo)志位。主機(jī)首先要發(fā)令牌包給PDIUSBD12,PDIUSBD12接收到令牌包后就給單片機(jī)發(fā)中斷,單片機(jī)進(jìn)入中斷服務(wù)程序,首先讀PDIUSBD12的中斷寄存器,判斷 USB令牌包的類型,然后執(zhí)行相應(yīng)的操作。因此,單片機(jī)程序主要就是中斷服務(wù)程序的編寫。在 USB單片機(jī)程序中要完成對(duì)各種令牌包的響應(yīng),其中比較難處理的是SETUP包,主要是端點(diǎn)0的編程。

系統(tǒng)初始化部分包括系統(tǒng)時(shí)鐘,IO口,中斷設(shè)置(開外部中斷),PDIUSBD12芯片軟件復(fù)位、初始化。該主流程的核心部分是協(xié)議層的請(qǐng)求處理,它關(guān)系到PC機(jī)枚舉USB外設(shè)成功與否。所以在調(diào)試單片機(jī)程序的時(shí)候,要特別注意Window對(duì)USB設(shè)備的枚舉順序。如果枚舉成功,主機(jī)將找到新的設(shè)備,提示安裝驅(qū)動(dòng)程序;否則找到未知設(shè)備,USB外設(shè)不可用。

中斷服務(wù)子程序的編寫,采用混合編程,也就是說,在匯編程序中調(diào)用C函數(shù),這樣可以提高代碼的可讀性。中斷服務(wù)子程序的流程如圖3.13所示,有好幾個(gè)地方,只做清中斷處理,這是因?yàn)橛行┒它c(diǎn)沒有用到。它只作為一個(gè)程序接口,為擴(kuò)展系統(tǒng)功能用。

目前編寫主機(jī)的USB驅(qū)動(dòng)程序主要采用三種方法。第一,使用Windows DDK來編寫驅(qū)動(dòng)程序,難度很大,但是非常靈活;第二,使用DriverStudio開發(fā)工具來生成驅(qū)動(dòng)程序;第三,使用Windriver開發(fā)工具來生成驅(qū)動(dòng)程序。用后面兩種方法來開發(fā)驅(qū)動(dòng)程序的周期短,但是不靈活。本系統(tǒng)的驅(qū)動(dòng)程序采用DDK編寫,用戶服務(wù)程序能夠通過驅(qū)動(dòng)程序與PDIUSBD12芯片中任意端點(diǎn)通訊,因此編寫用戶服務(wù)程序也是非常靈活的。

4.4總結(jié)

通常在開發(fā)USB設(shè)備產(chǎn)品,需要編寫實(shí)時(shí)性、程序可讀性要求很高的代碼,這時(shí)就需要采用混合編程。而凌陽的m’nSP%26;#8482; IDE具有良好的編程環(huán)境,它可以很輕松、很容易進(jìn)行混合編程(在C程序中調(diào)用匯編程序,在匯編程序中調(diào)用C程序)。

在該系統(tǒng)中,只用到了SPCE061A單片機(jī)的外部中斷、IO口資源。其實(shí)SPCE061A單片機(jī)的資源很豐富,它除了具有普通單片機(jī)功能以外,還具有語音識(shí)別、語音錄放等功能。因此這個(gè)系統(tǒng)只是一個(gè)雛形,SPCE061A還能夠?qū)崿F(xiàn)比較復(fù)雜的功能,比如使用SPCE061A的錄音功能進(jìn)行錄音并將語音數(shù)據(jù)存儲(chǔ)到外擴(kuò)的FLASH,然后通過USB通訊,將語音數(shù)據(jù)送到PC機(jī)上播放,同樣也可以將PC機(jī)上壓縮后的語音文件下載到SPCE061A上進(jìn)行播放。這樣可以很容易使用SPCE061A可以開發(fā)錄音筆、電話記錄儀等USB設(shè)備。因此利用SPCE061A開發(fā)USB設(shè)備產(chǎn)品的前景是非常廣闊的。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    455

    文章

    50714

    瀏覽量

    423136
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6035

    文章

    44554

    瀏覽量

    634629
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8575

    瀏覽量

    151014
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于SPCE061A的智能防盜防火報(bào)警系統(tǒng)

    基于SPCE061A的智能防盜防火報(bào)警系統(tǒng)
    發(fā)表于 08-06 12:31

    SPCE061A的FAQ.pdf

    SPCE061A的FAQ.pdf!?。。。。。。。。。。。。。。。。。。?!
    發(fā)表于 08-29 18:22

    SPCE061A中文編程手冊(cè)

    SPCE061A中文編程手冊(cè)
    發(fā)表于 01-02 23:08

    如何使用凌陽SPCE061A設(shè)計(jì)嵌入式應(yīng)用系統(tǒng)?

    SPCE061A是凌陽科技新推出的u課SP內(nèi)核的十六位單片機(jī),內(nèi)嵌32K字 Flash的SPCE061A時(shí)是適用于數(shù)字語音識(shí)別應(yīng)用領(lǐng)域的一種經(jīng)濟(jì)的選擇。它支持精簡指令系統(tǒng),片內(nèi)具有豐富的硬件資源
    發(fā)表于 08-08 06:41

    SPCE061A單片機(jī)怎么通過指紋識(shí)別模塊實(shí)現(xiàn)接口電路?

    SPCE061A單片機(jī)與指紋識(shí)別模塊的接口電路設(shè)計(jì)
    發(fā)表于 10-30 09:11

    怎么實(shí)現(xiàn)基于SPCE061A的車載DVD播放器設(shè)計(jì)?

    本文設(shè)計(jì)并實(shí)現(xiàn)一套基于凌陽單片機(jī)SPCE061A的車載多碟DVD播放器。
    發(fā)表于 05-13 06:59

    怎么實(shí)現(xiàn)SPCE061A的射頻讀寫器信號(hào)分析系統(tǒng)設(shè)計(jì)?

    怎么實(shí)現(xiàn)SPCE061A的射頻讀寫器信號(hào)分析系統(tǒng)設(shè)計(jì)?
    發(fā)表于 05-31 06:44

    如何使用SPCE061A的SIO實(shí)現(xiàn)數(shù)碼錄音及播放?

    本文就是介紹利用SPCE061A的這兩個(gè)資源和串行接口的FLASH(SPR1024)來開發(fā)數(shù)碼錄音及播放系統(tǒng)。
    發(fā)表于 06-07 06:33

    SPCE061A實(shí)現(xiàn)數(shù)據(jù)采集與傳輸系統(tǒng).doc

    SPCE061A實(shí)現(xiàn)數(shù)據(jù)采集與傳輸系統(tǒng).doc
    發(fā)表于 04-04 23:59 ?23次下載

    SPCE061A指令系統(tǒng)

    SPCE061A采用的內(nèi)核           SPCE061A采用的內(nèi)核(CPU)為μ&lsquo
    發(fā)表于 06-16 22:49 ?22次下載
    <b class='flag-5'>SPCE061A</b>指令<b class='flag-5'>系統(tǒng)</b>

    SPCE061A單片機(jī)硬件結(jié)構(gòu)

    SPCE061A單片機(jī)硬件結(jié)構(gòu) 從第一章中SPCE061A的結(jié)構(gòu)圖可以看出SPCE061A的結(jié)構(gòu)比較簡單,在芯片內(nèi)部集成了ICE仿真電路接口
    發(fā)表于 08-26 18:55 ?75次下載

    SPCE061A在智能家居系統(tǒng)中的應(yīng)用

    SPCE061A為核心作為主控制器,以89C51及相關(guān)硬件電路為分控制器,利用電話接口和電力線載波通信,設(shè)計(jì)了一種智能家居系統(tǒng),文中介紹了SPCE061A
    發(fā)表于 01-13 15:58 ?32次下載

    SPCE061A單片機(jī)在USB通訊中的應(yīng)用

    SPCE061A單片機(jī)在USB通訊中的應(yīng)用
    發(fā)表于 08-04 22:23 ?43次下載

    采用SPCE061A設(shè)計(jì)的SIO實(shí)現(xiàn)數(shù)碼錄音及播放

    采用SPCE061A設(shè)計(jì)的SIO實(shí)現(xiàn)數(shù)碼錄音及播放 本文就是介紹利用SPCE061A的這兩個(gè)資源和串行接口的FLASH(SPR1024)來開發(fā)數(shù)碼錄音及播放
    發(fā)表于 04-20 11:45 ?1020次閱讀
    采用<b class='flag-5'>SPCE061A</b>設(shè)計(jì)的SIO<b class='flag-5'>實(shí)現(xiàn)</b>數(shù)碼錄音及播放

    使用SPCE061A的SIO實(shí)現(xiàn)數(shù)碼錄音及播放

    功能,同時(shí)又具有串口輸入輸出端口SIO(它提供了一個(gè)1位的串行接口,用于與其它設(shè)備進(jìn)行數(shù)據(jù)通訊),本文就是介紹利用SPCE061A的這兩個(gè)資源和串行接口的FLASH(SPR1024)來
    發(fā)表于 11-09 09:17 ?342次閱讀
    RM新时代网站-首页