基于嵌入式系統(tǒng)的USBtoUART通信設(shè)計(jì)方案
本文引用地址:http://m.butianyuan.cn/article/201612/330768.htm
3 軟硬件設(shè)計(jì)
實(shí)際上應(yīng)用工程師并不需要了解如此多的關(guān)于USB的底層內(nèi)容和協(xié)議。只要基本掌握和看懂圖1所示的原理,借助PSoC:USB和USBUART,就可以在很短的時(shí)間內(nèi)實(shí)現(xiàn)基于USB接口的PC與嵌入式系統(tǒng)的連接通信。下面具體介紹該方案的軟硬件設(shè)計(jì)和實(shí)現(xiàn)。
3.1 硬件設(shè)計(jì)
圖2是采用CY7C64215實(shí)現(xiàn)該方案的原理圖。
圖中的CY7C64215是帶有1個(gè)全速USB接口的PSoC芯片,左邊的USB—B為USB連接座,其中D+和D一為2個(gè)USB信號(hào)線,通過(guò) 2個(gè)51 Ω電阻與CY7C64215的2個(gè)USB引腳D+和D一連接。整個(gè)系統(tǒng)電源是通過(guò)USB連接座上的5 V引腳獲取,即由PC機(jī)的USB口提供工作電源。需要特別注意的是,電路中使用了1片電壓調(diào)整芯片,將從USB口上輸入的5 V電壓調(diào)整為3.6 V后,再作為CY7C64215的工作電源。這是因?yàn)閁SB協(xié)議中規(guī)定了USB信號(hào)線D+和D一的電平為O~3.6 V,CY7C64215采用3.6 V的工作電壓是為了保證USB信號(hào)線的電平匹配。如果CY7c64215直接使用5 V電源工作,那么在D+和D一信號(hào)線上必須對(duì)地增加2個(gè)3.6 V穩(wěn)壓二極管,分別將它們鉗位在3.6 V,這樣才能保證PC正確識(shí)別該USB設(shè)備和USB通信的正常。
圖中右邊的ISSP為PSoC的編程下載口,PSoC器件支持ISSP在線串行下載,編譯生成的HEX文件可以通過(guò)該編程口燒錄到PSoC內(nèi)部的Flash中。圖中的LED是USB工作指示燈,在USB通信過(guò)程中會(huì)閃爍。
3.2 PSoC軟件系統(tǒng)設(shè)計(jì)過(guò)程
軟件系統(tǒng)設(shè)計(jì)過(guò)程全部是在PSoC的集成開(kāi)發(fā)環(huán)境PSoC Designer 5中完成的。首先建立1個(gè)新的項(xiàng)目,選擇帶有USB接口的CY7C64215芯片。在芯片中選擇添加USBUART用戶模塊,并為該模塊填寫相應(yīng)的參數(shù)。表1給出了USBUART的幾個(gè)參數(shù)及意義,其中MaxPower僅當(dāng)選擇設(shè)備由USB總線供電時(shí)有效。
在這個(gè)示例中,除了選擇必需的USBUART用戶模塊外,還選擇使用了1個(gè)LED用戶模塊,該模塊用于控制LED指示USB的工作狀態(tài)。根據(jù)硬件電路,配置該模塊的輸出為CY7C64215的P1_2引腳,用于驅(qū)動(dòng)LED。
選擇配置完2個(gè)用戶模塊后,就可讓PSoC Designer生成應(yīng)用程序框架了。在這個(gè)過(guò)程中,PSoC Designer會(huì)自動(dòng)綜合所有的配置信息,更新和產(chǎn)生所使用用戶模塊的底層匯編語(yǔ)言驅(qū)動(dòng)代碼和API函數(shù),并同時(shí)生成一個(gè)C語(yǔ)言的主程序框架。
接下來(lái)就是編寫USBUART設(shè)備的上層應(yīng)用程序代碼了。在PSoC Designer中,打開(kāi)已經(jīng)生成的main.c主程序,添加如下所示的簡(jiǎn)單代碼:
這段簡(jiǎn)單的C代碼功能首先啟動(dòng)LED和USBUART用戶模塊工作,開(kāi)放CPU的中斷允許,然后等待USB初始化。USB接口初始化成功(與 PC連接成功)后,程序開(kāi)始循環(huán)查詢和接收PC下發(fā)的數(shù)據(jù),然后將收到的數(shù)據(jù)再回送給PC,同時(shí)控制LED的閃爍,從而實(shí)現(xiàn)簡(jiǎn)單的、可作為USBUART 設(shè)備性能測(cè)試的Echo功能。
最后編譯整個(gè)系統(tǒng)程序,生成HEX文件,通過(guò)ISSP下載燒錄到CY7C64215中。整個(gè)軟件系統(tǒng)設(shè)計(jì)過(guò)程便告完成。
3.3 USBUART的連接與測(cè)試
使用l根普通的USB延長(zhǎng)連接線,將CY7C64215的USB口連接到PC機(jī)的USB口上,PC顯示發(fā)現(xiàn)新的USB設(shè)備,并提示安裝驅(qū)動(dòng)。 USBUART設(shè)備的驅(qū)動(dòng)程序是PSoC Designer自動(dòng)生成的,保存在工程文件目錄的L1B子目錄下,文件名為USBUART_XP_Vista.inf(或US—BUART.inf)。用戶只要按照提示的要求,選擇這個(gè)USB設(shè)備文件就可以安裝USBUART的驅(qū)動(dòng)了。打開(kāi)PC機(jī)的硬件配置,會(huì)發(fā)現(xiàn)PC的硬件設(shè)備中多了1個(gè)COM口。
接下來(lái)的測(cè)試是在PC機(jī)上打開(kāi)串口調(diào)試工具(如超級(jí)終端),連接到該COM口,然后手動(dòng)發(fā)送1個(gè)任意字符。CY7C64215控制的LED則開(kāi)始閃爍,在超級(jí)終端上也同時(shí)收到由USBUART回送的該字符。
更進(jìn)一步的測(cè)試是,將超級(jí)終端的波特率設(shè)置成115 200 bps,每隔1 ms自動(dòng)發(fā)送1個(gè)字符。此時(shí)CY7C64215控制的LED全亮(由于閃爍間隔時(shí)間太短),超級(jí)終端也會(huì)連續(xù)收到字符。通過(guò)對(duì)比在超級(jí)終端中發(fā)送和接收到的字符個(gè)數(shù)是否相同,可以驗(yàn)證是否丟失數(shù)據(jù)。
4 總 結(jié)
RS232是單個(gè)設(shè)備接入計(jì)算機(jī)時(shí)最常采用的一種方式,由于其通信規(guī)程協(xié)議比較簡(jiǎn)單,很多傳統(tǒng)的儀器設(shè)備和嵌入式系統(tǒng)都采用了這種通信方式。將 USB轉(zhuǎn)UART技術(shù)應(yīng)用于嵌入式系統(tǒng)與.PC機(jī)之間的數(shù)據(jù)通信,在計(jì)算機(jī)上產(chǎn)生1個(gè)虛擬的COM口,用戶只需像使用通用串行口一樣使用USB口即可。這樣不僅能使嵌入式系統(tǒng)具備USB通信的諸多優(yōu)點(diǎn),簡(jiǎn)化了USB編程,同時(shí)還可以利用USB對(duì)嵌入式系統(tǒng)提供5 V的電源(500 mA以下)。而PSoC USB和USBUART則提供了非常方便和快捷的實(shí)現(xiàn)方法,并具備以下幾個(gè)特點(diǎn)。
該方案使得工程師能夠繞過(guò)復(fù)雜的USB底層接口和協(xié)議,采用簡(jiǎn)便的RS232(UART)方式進(jìn)行上層系統(tǒng)設(shè)計(jì),繼承了傳統(tǒng)方案的優(yōu)點(diǎn),不會(huì)給設(shè)計(jì)人員帶來(lái)困難。同采用配置1根“USB toRS232”轉(zhuǎn)換電纜的方案相比,USBUART的硬件設(shè)計(jì)和結(jié)構(gòu)更為簡(jiǎn)單,物理接口占用的空間也大大減小。在電路上不僅省掉了UART與RS232的電平轉(zhuǎn)換環(huán)節(jié)(MAX232),還可以使一些小型、微型的嵌入式系統(tǒng)直接采用由PC機(jī)的USB口供電的工作方式,進(jìn)一步省掉了電源系統(tǒng),有效降低了整個(gè)系統(tǒng)的硬件成本。
USBUART本身還提供了20多個(gè)應(yīng)用編程接口(API)子程序,它們作為該用戶模塊的一部分,使設(shè)計(jì)人員只需要在更高層次上與USBUART模塊打交道。而且CY7C64215、CY8C24x94除了具備USB端口外,還含有多個(gè)可編程配置的數(shù)字和模擬模塊、32 KB的Flash、1 KB的SRAM、2個(gè)8×8的乘法器、1個(gè)32位加法器、超過(guò)56個(gè)可編程的I/O(CY8C24x94)等強(qiáng)大的資源。僅僅1片芯片,不但可以實(shí)現(xiàn)基于 USB的通信,還可以同時(shí)完成各種不同的模擬和數(shù)字,以及模數(shù)混合的應(yīng)用(如CapSense、CY8C24x94)。
本方案非常適合在設(shè)計(jì)新的產(chǎn)品和系統(tǒng)時(shí)采用,作者已經(jīng)成功地將其融入到多個(gè)新設(shè)計(jì)的系統(tǒng)和產(chǎn)品中使用。
評(píng)論