基于嵌入式系統的USB to UART通信設計方案
3 軟硬件設計
本文引用地址:http://www.j9360.com/article/248951.htm實際上應用工程師并不需要了解如此多的關于USB的底層內容和協議。只要基本掌握和看懂圖1所示的原理,借助PSoC:USB和USBUART,就可以在很短的時間內實現基于USB接口的PC與嵌入式系統的連接通信。下面具體介紹該方案的軟硬件設計和實現。
3.1 硬件設計
圖2是采用CY7C64215實現該方案的原理圖。

圖中的CY7C64215是帶有1個全速USB接口的PSoC芯片,左邊的USB—B為USB連接座,其中D+和D一為2個USB信號線,通過 2個51 Ω電阻與CY7C64215的2個USB引腳D+和D一連接。整個系統電源是通過USB連接座上的5 V引腳獲取,即由PC機的USB口提供工作電源。需要特別注意的是,電路中使用了1片電壓調整芯片,將從USB口上輸入的5 V電壓調整為3.6 V后,再作為CY7C64215的工作電源。這是因為USB協議中規定了USB信號線D+和D一的電平為O~3.6 V,CY7C64215采用3.6 V的工作電壓是為了保證USB信號線的電平匹配。如果CY7c64215直接使用5 V電源工作,那么在D+和D一信號線上必須對地增加2個3.6 V穩壓二極管,分別將它們鉗位在3.6 V,這樣才能保證PC正確識別該USB設備和USB通信的正常。
圖中右邊的ISSP為PSoC的編程下載口,PSoC器件支持ISSP在線串行下載,編譯生成的HEX文件可以通過該編程口燒錄到PSoC內部的Flash中。圖中的LED是USB工作指示燈,在USB通信過程中會閃爍。
3.2 PSoC軟件系統設計過程
軟件系統設計過程全部是在PSoC的集成開發環境PSoC Designer 5中完成的。首先建立1個新的項目,選擇帶有USB接口的CY7C64215芯片。在芯片中選擇添加USBUART用戶模塊,并為該模塊填寫相應的參數。表1給出了USBUART的幾個參數及意義,其中MaxPower僅當選擇設備由USB總線供電時有效。

在這個示例中,除了選擇必需的USBUART用戶模塊外,還選擇使用了1個LED用戶模塊,該模塊用于控制LED指示USB的工作狀態。根據硬件電路,配置該模塊的輸出為CY7C64215的P1_2引腳,用于驅動LED。
選擇配置完2個用戶模塊后,就可讓PSoC Designer生成應用程序框架了。在這個過程中,PSoC Designer會自動綜合所有的配置信息,更新和產生所使用用戶模塊的底層匯編語言驅動代碼和API函數,并同時生成一個C語言的主程序框架。
接下來就是編寫USBUART設備的上層應用程序代碼了。在PSoC Designer中,打開已經生成的main.c主程序,添加如下所示的簡單代碼:

這段簡單的C代碼功能首先啟動LED和USBUART用戶模塊工作,開放CPU的中斷允許,然后等待USB初始化。USB接口初始化成功(與 PC連接成功)后,程序開始循環查詢和接收PC下發的數據,然后將收到的數據再回送給PC,同時控制LED的閃爍,從而實現簡單的、可作為USBUART 設備性能測試的Echo功能。
最后編譯整個系統程序,生成HEX文件,通過ISSP下載燒錄到CY7C64215中。整個軟件系統設計過程便告完成。
3.3 USBUART的連接與測試
使用l根普通的USB延長連接線,將CY7C64215的USB口連接到PC機的USB口上,PC顯示發現新的USB設備,并提示安裝驅動。 USBUART設備的驅動程序是PSoC Designer自動生成的,保存在工程文件目錄的L1B子目錄下,文件名為USBUART_XP_Vista.inf(或US—BUART.inf)。用戶只要按照提示的要求,選擇這個USB設備文件就可以安裝USBUART的驅動了。打開PC機的硬件配置,會發現PC的硬件設備中多了1個COM口。
接下來的測試是在PC機上打開串口調試工具(如超級終端),連接到該COM口,然后手動發送1個任意字符。CY7C64215控制的LED則開始閃爍,在超級終端上也同時收到由USBUART回送的該字符。
更進一步的測試是,將超級終端的波特率設置成115 200 bps,每隔1 ms自動發送1個字符。此時CY7C64215控制的LED全亮(由于閃爍間隔時間太短),超級終端也會連續收到字符。通過對比在超級終端中發送和接收到的字符個數是否相同,可以驗證是否丟失數據。
4 總 結
RS232是單個設備接入計算機時最常采用的一種方式,由于其通信規程協議比較簡單,很多傳統的儀器設備和嵌入式系統都采用了這種通信方式。將 USB轉UART技術應用于嵌入式系統與.PC機之間的數據通信,在計算機上產生1個虛擬的COM口,用戶只需像使用通用串行口一樣使用USB口即可。這樣不僅能使嵌入式系統具備USB通信的諸多優點,簡化了USB編程,同時還可以利用USB對嵌入式系統提供5 V的電源(500 mA以下)。而PSoC USB和USBUART則提供了非常方便和快捷的實現方法,并具備以下幾個特點。
該方案使得工程師能夠繞過復雜的USB底層接口和協議,采用簡便的RS232(UART)方式進行上層系統設計,繼承了傳統方案的優點,不會給設計人員帶來困難。同采用配置1根“USB to RS232”轉換電纜的方案相比,USBUART的硬件設計和結構更為簡單,物理接口占用的空間也大大減小。在電路上不僅省掉了UART與RS232的電平轉換環節(MAX232),還可以使一些小型、微型的嵌入式系統直接采用由PC機的USB口供電的工作方式,進一步省掉了電源系統,有效降低了整個系統的硬件成本。
USBUART本身還提供了20多個應用編程接口(API)子程序,它們作為該用戶模塊的一部分,使設計人員只需要在更高層次上與USBUART模塊打交道。而且CY7C64215、CY8C24x94除了具備USB端口外,還含有多個可編程配置的數字和模擬模塊、32 KB的Flash、1 KB的SRAM、2個8×8的乘法器、1個32位加法器、超過56個可編程的I/O(CY8C24x94)等強大的資源。僅僅1片芯片,不但可以實現基于 USB的通信,還可以同時完成各種不同的模擬和數字,以及模數混合的應用(如CapSense、CY8C24x94)。
本方案非常適合在設計新的產品和系統時采用,作者已經成功地將其融入到多個新設計的系統和產品中使用。
通信相關文章:通信原理
評論