<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于嵌入式系統的USB to UART通信設計方案

基于嵌入式系統的USB to UART通信設計方案

作者: 時(shí)間:2014-06-27 來(lái)源:網(wǎng)絡(luò ) 收藏

  1 概 述

本文引用地址:http://dyxdggzs.com/article/248951.htm

  (UART)接口是一種簡(jiǎn)單、方便和實(shí)用的通信接口,用途非常廣泛。在許多嵌入式應用,如智能儀器儀表、電子設備中,均使用與PC機等外部系統進(jìn)行通信,實(shí)現上位機對下位機的控制及數據交換等。在系統調試過(guò)程中,通常也是通過(guò),將調試數據發(fā)送到PC上顯示出來(lái)。

  但在PC機領(lǐng)域,RS232(COM)串行接口已經(jīng)從最新一生產(chǎn)的計算機,尤其是筆記本電腦中消失了,而串行接口成為了標準的配置。這種變化給硬件工程師帶來(lái)了不少麻煩。

  目前通常的解決辦法是購置一根“ to RS232”轉換電纜,其基本作用是在總線(xiàn)上仿真出一個(gè)RS232端口。這種方法的主要優(yōu)點(diǎn)在于:PC應用程序將該USB口連接當作COM口連接使用,從而可以使工程師輕松跨越復雜的USB低層接口協(xié)議,仍使用原來(lái)熟悉的,針對COM口操作的方式編寫(xiě)程序代碼。

  本文將介紹另外一種與上述方法原理類(lèi)似的設計實(shí)現方案,設備之間的外表連接全部換成了USB標準物理接口和連接電纜,但在PC上仍然使用針對COM口操作的方式編寫(xiě)程序代碼,保留了原來(lái)的風(fēng)格。該方案是采用Cypress公司家族中帶USB接口的CY7C64215(或CY8C24x94)芯片實(shí)現的。

  2 、 USB和USBUART

  2.1 PSOC

  可編程片上系統(Prograromable System on Chip,PSoC),是Cypress公司近幾年推出的一種新型的可編程半導體器件芯片。PSoC由8位微處理器內核,多個(gè)可編程的模擬模塊和數字模塊,硬件乘法累加器,以及I2C、Flash、SRAM等周邊外圍資源組成。因此,PSoC除了能實(shí)現一般MCU的功能外,還可通過(guò)可編程模擬和數字模塊,靈活地實(shí)現嵌入式系統所需的多種模擬與數字外圍功能。PSoC集三種可編程能力于一體,不僅具有MCU的可編程能力,還包含了部分可編程邏輯運算功能,同時(shí)提供了可編程模擬陣列。通過(guò)對寄存器的配置或控制,三者之間還可以協(xié)調工作,是具有真正的混合信號處理能力的可編程片上系統。

  PSoC中的數字資源(如定時(shí)器、PWM、UART等)和模擬資源(如放大器、比較器、濾波器等)是以數字模塊和模擬模塊的方式給出。不同型號PSoC芯片的差異主要在于其擁有的數字模塊和模擬模塊的數量不同。用戶(hù)可根據特定需求來(lái)定義這些模塊。

  PSoC的集成開(kāi)發(fā)環(huán)境PSoC Designer也預先為用戶(hù)定義了近百個(gè)常用的數字和模擬資源配置模塊。這些預定義的模塊稱(chēng)為用戶(hù)模塊,如數字資源有定時(shí)器、PWM、UART、 SPI、CRC、PRS等,模擬資源有放大器、比較器、濾波器等,ADC則由若干數字模塊和模擬模塊組合而成。這使得PSoC開(kāi)發(fā)人員無(wú)需通過(guò)設置寄存器來(lái)構建這些周邊設備,只需在PSoC Designer中選擇和放置所需的用戶(hù)模塊并進(jìn)行參數設定。PSoC Designer不僅能配置用戶(hù)模塊,還為用戶(hù)創(chuàng )建了低層驅動(dòng)函數,并提供使用這些用戶(hù)模塊的API函數供用戶(hù)編程時(shí)調用。這種新穎的系統設計方法使工程師可以把主要精力集中在上層系統軟件的設計工作中,極大地方便了整個(gè)系統的設計開(kāi)發(fā)。

  2.2 PSoC USB

  PSoC系列中的CY7C64215、CY8C24x94芯片不僅具備上述PSoC的功能和特點(diǎn),還包括了一個(gè)功能完善的全速(12 Mbps)USB端口。PSoC的USB端口資源符合USB2.O規范,是一個(gè)可以工作在12 Mbps速度下的全速器件,具備1個(gè)上行端口和1個(gè)USB地址的規范要求。PSoC USB包括1個(gè)串行接口引擎(SIE),1個(gè)PSoC存儲器仲裁器(PMA),256B的專(zhuān)用SRAM,1個(gè)帶有內部調節器的全速USB收發(fā)器以及2個(gè)專(zhuān)用USB引腳。

  USB SIE支持5個(gè)端點(diǎn),包括1個(gè)控制端點(diǎn)(端點(diǎn)0)和4個(gè)數據端點(diǎn)(端點(diǎn)1、2、3和4)??刂贫它c(diǎn)經(jīng)過(guò)配置可支持SETUP、IN和OUT請求。數據端點(diǎn)可分別獨立配置,從而響應中斷、批傳輸、同步IN或OUT請求等。SIE使PSoC器件能與USB主機實(shí)現全速通信,并可自動(dòng)完成以下USB處理任務(wù),無(wú)需固件干預,從而簡(jiǎn)化了USB流量接口的工作。

 ?、賹⒔邮盏降木幋a數據進(jìn)行轉換,將總線(xiàn)上要傳輸的數據格式化。

 ?、谏蒀RC校驗和。忽略那些傳送進(jìn)來(lái)的未通過(guò)校驗和驗證的數據包。

 ?、鄣刂窓z查。忽略所有地址未指向器件的事務(wù)。

 ?、馨l(fā)送適當的ACK/NAK/Stall握手信號。

 ?、葑R別標記類(lèi)型(SETUP、IN、OUT),一旦接收到有效的標記,即設置適當的標記位。

 ?、拮R別幀起始(S()F)并保存幀的數量。

 ?、咄ㄟ^(guò)PSoC存儲器仲裁器向USB SRAM發(fā)送數據,或從USB SRAM接收數據。

  PSoC存儲器判優(yōu)器(PMA)是PSoC USB專(zhuān)用SRAM與數據SRAM的2個(gè)內存塊(USB SIE與M8C)之間的接口。PMA可提供8個(gè)通道用于傳輸數據。M8C可使用所有的通道寄存器,但4個(gè)非控制USB端點(diǎn)分別由PMA通道寄存器的特定集來(lái)分配。

  PSoC USB系統資源包含專(zhuān)用的256 B SRAM,其與PSoC內核中所用的SRAM頁(yè)相同,但不能通過(guò)M8C存儲器操作指令存取。PSoC USB的專(zhuān)用SRAM只能通過(guò)PMA寄存器進(jìn)行存取。

  內部USB收發(fā)器與外部USB總線(xiàn)相連,根據USB2.O規范收發(fā)信號。在正常的USB操作狀態(tài)下,收發(fā)器直接與SIE連接,初始化之后無(wú)需與用戶(hù)互動(dòng)。

  就系統級而言,PSoC的全速USB系統資源通過(guò)M8C寄存器訪(fǎng)問(wèn)指令進(jìn)行操作配置,實(shí)現與PSoC其他部分的連接,并通過(guò)2個(gè)USB引腳與外部相連。

  2.3 USBUART用戶(hù)模塊

  USBUART用戶(hù)模塊是PSoC集成開(kāi)發(fā)環(huán)境PSoCDesigner中專(zhuān)門(mén)為用戶(hù)使用PSoC USB預先定義的自動(dòng)配置資源。USBUART實(shí)現了USB設備功能,并利用PSoC的1個(gè)USB端口來(lái)仿真1個(gè)COM端口,同時(shí)在PSoC器件側提供了類(lèi)似于UART的高層API函數。因此利用該用戶(hù)模塊可以方便地替代傳統的基于RS232(UART)接口的通信方案。2種方案的對比如圖1所示。

  

 

  USBUART是在PSoC的USB端口基礎上,在USB總線(xiàn)上仿真RS232端口。這種方法的主要優(yōu)點(diǎn)在于,PC的上層應用程序將此USB設備仍舊看作是1個(gè)COM連接,從而使上層操作非常易于實(shí)現。這種方法可以使用在從Windows 98SE到Windows XP所有版本的MicrosoftWindows操作系統中的標準COM口驅動(dòng)程序——MSC0M控件來(lái)編寫(xiě)的應用程序中。

  USB通信設備類(lèi)(CDC)規格定義了許多通信模型,其中包括了1個(gè)在USB上實(shí)現串行通信仿真的抽象控制模型。Microsoft Windows USB調制解調器的驅動(dòng)程序usbser.sys符合此規格。

  在一臺新的USB設備第一次連接到一臺WindowsPC時(shí),Windows將要求用戶(hù)提供驅動(dòng)程序。Windows2000及以后版本在安裝驅動(dòng)程序時(shí)需要一個(gè)INF文件。Windows沒(méi)有為這個(gè)usbser.sys驅動(dòng)程序提供標準的INF文件。為了安裝能夠在USB上仿真RS232的設備,用戶(hù)必須提供一個(gè)能夠將附加的設備映射到MicrosoftCDC驅動(dòng)程序的INF文件。USBUART用戶(hù)模塊會(huì )自動(dòng)生成這個(gè)必要的INF文件,建立在工程項目的LIB文件夾內供使用。在提供了INF文件后,驅動(dòng)程序允許USB1設備仿真成1個(gè)USB端口。

  PC上面向COM口終端應用程序中的設置(波特率、數據位、奇偶校驗、停止位和流控制)都不會(huì )影響數據傳輸的性能,因為此時(shí)的COM口實(shí)際是 USB設備,使用USB協(xié)議來(lái)控制數據流。但是,除了流控制以外的COM口終端設置值,在PSoC端可以采用特定的API函數調用檢索到,以便在需要時(shí)用于真正的RS232設備。

通信相關(guān)文章:通信原理



上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: PSoC USB RS232

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>