牛人解讀:從RS 232接口向USB接口通訊的華麗轉變
發布時間:2014-11-11 責任編輯:echolady
【導讀】USB是一種PC機互連協議,能夠更方便快捷的使外設連接到計算機。RS-232是單個設備接入計算機時常用的接入方式,傳統設備常用到的通信方式。本文就為大家詳細解析了從RS-232接口向USB接口的通訊方式的華麗轉變。
USB接口適合於多種設備,不僅具有快速、即插即用、支持熱插拔的特點,還能同時連接多達127個設備,解決了如資源衝突、中斷請求(IRQs)和直接數據通道(DMAs)等問題。
一般的IC卡門禁考勤係統也使用RS-232 接口與PC機通信。如果將USB技術應用於IC卡門禁考勤係統與PC機之間的數據通信,這樣,不僅能使IC卡門禁考勤設備具備USB通信的諸多優點,而且對PC機而言還可以節餘1個RS-232串口為其它通信所用。
USB係統概述
USB規範描述了總線特性、協議定義、編程接口以及其它設計和構建係統時所要求的特性。USB是一 種主從總線,工作時USB主機處於主模式,設備處於從模式。USB係統所需要的唯一的係統資源是,USB係統軟件所使用的內存空間、USB主控製器所使用的內存地址空間(I/O地址空間)和中斷請求(IRQ)線。USB設備可以是功能性的如顯示器、鼠標或者集線器之類.它們可以作低速或者高速設備實現。低速設備最大速率限製在1.5 Mb/s,每一個設備有一些專有寄存器,也就是端點(endpoint) 在進行數據交換時,可以通過設備驅動間接訪問它。每一個端點支持幾種特殊的傳輸類型,並且有一個唯一的地址和傳輸方向。不同的是端點0 僅用作控製傳輸,並且其傳輸可以是雙向的。
係統上電後,USB主機負責檢測設備的連接與拆除、初始化設備的列舉過程,並根據設備描述表安裝設備驅動後自動重新配置係統,收集每個設備的狀態信息。設備描述表標識了設備的屬性、特征,並描述了設備的通信要求。USB主機根據這些信息配置設備、查找驅動,並且與設備通信。
典型的USB數據傳輸是由設備驅動開始的,當它需要與設備通信時, 設備驅動提供內存緩衝區,用來存放設備收到或者即將發送的數據。USB驅動提供USB設備驅動和USB主控製器之間的接口,並將傳輸請求轉化為USB事務,轉化時需要與帶寬要求及協議結構保持一致。某些傳輸是由大塊數據構成的,這時需要先將它劃分為幾個事物再進行傳輸。
具有相似功能的設備可以組成一類,這樣便於分享共有的特性和使用共同的設備驅動程序。每個類可以定義其自己的描述符,如:HID類描述符和Report描述符。HID類是由人控製計算機係統的設備組成的,它定義了一個描述HID設備的結構,並且表明了設備的通信要求。HID設備描述符必須支持端點輸入中斷,固件也必須包括一個報告描述符, 表明接收和發送數據的格式。在IC卡門禁考勤係統引入RS-232到USB的接口轉換模塊後,從係統所具有的特性來看,應該屬於HID設備。因此兩種特殊的HID類請求必須被支持:SetReport和GetReport。這些請求使設備能接收和發送一般的設備信息給主機。在沒有中斷輸出終端時,SetReport是主機發送數據給HID設備的唯一方式。
係統要求
為了實現IC卡門禁考勤係統中RS-232-USB的接口轉換,需要1台支持USB的(de)主(zhu)機(ji),同(tong)時(shi)還(hai)要(yao)提(ti)供(gong)主(zhu)機(ji)上(shang)用(yong)於(yu)與(yu)外(wai)設(she)通(tong)信(xin)的(de)驅(qu)動(dong),一(yi)般(ban)由(you)操(cao)作(zuo)係(xi)統(tong)提(ti)供(gong)。此(ci)外(wai),還(hai)需(xu)開(kai)發(fa)在(zai)主(zhu)機(ji)上(shang)執(zhi)行(xing)的(de)客(ke)戶(hu)端(duan)應(ying)用(yong)程(cheng)序(xu)。在(zai)設(she)備(bei)端(duan)需(xu)要(yao)提(ti)供(gong)具(ju)有(you)USB接口的主控製器芯片,以及編寫主控製器上執行的USB通信代碼和用於執行外設功能的相關代碼。
主機要求
主機必須能夠通過設備驅動接收USB數據,並且使這些數據對處理這些請求的應用程序有效。在主機中必須有一個驅動負責處理USB傳輸、辨識設備、向USB設備收發數據;同時,還需要有一個設備驅動-虛擬化串行口,仿效真實的串口.這個驅動必須能夠像真實的串口接收和發送USB數據。
從應用的觀點,設備驅動必須能收發數據,可以通過使用一個虛擬化的串口或通過轉化為USB 數據實現。微軟提供了一個叫作USB POS的設備驅動,它允許應用程序訪問USB設備時,好像它們連接到標準串口上一樣。係統大致結構方框圖如圖1所示。
[page]
設備要求
在定義即將使用的微控製器時,必須說明一些通信要求,如:通信速率、頻率、傳輸的數據量等。考慮到IC卡門禁考勤係統有效的通信速率,可以把轉換器作為一個低速的設備使用,低速設備通信速度可以在10~100 Kb/s的範圍變化。考慮到傳輸的數據量和傳輸的頻率, 此係統中使用中斷的傳輸類型,中斷傳輸可以在2個方向進行,但不能同時進行,這種類型的傳輸要求在規定的時間裏完成相當大數據量的傳輸任務。
對於轉換模塊,它可以用於PC機的數據收發,操作係統提供了HID驅動,允許使用中斷傳輸模式。對於低速設備的一個事務,中斷傳輸最大的包容量是8字節,如果需要發送大量的數據。則必須把它分割為很多事務。
轉換模塊要定義的另一個特性是所需端點數。如上所述,端點是微控製器在USB通信過程中所用來發送和接收數據的緩衝區。此係統中,該轉換器定義了2個端點:一個端點(端點0)用來控製傳輸,另一個端點是中斷輸入端點,定義為發數據給PC機。
根據以上要求,通過研究比較現有的微控製器,考慮到如內存空間、價格和開發包等因素,我們選用Cypress家族的一種8位RISC微控製器CY7C*XX/5XX。它使用哈佛總線結構,是對較高I/O要求的低速應用設備的低價解決方案。

圖1:為IC卡門禁考勤係統USB通信實現硬件方框原理圖
軟件設計和執行係統軟件由6部分組成:定義描述符、設備檢測和列舉、端點中斷服務程序、USB數據交換模塊、串行口數據交換模塊、USB/Serial模塊接口。 下麵簡要描述其中部分模塊程序的功能和實現思想。
1、描述符定義
描(miao)述(shu)符(fu)是(shi)數(shu)據(ju)結(jie)果(guo)或(huo)信(xin)息(xi)的(de)格(ge)式(shi)化(hua)塊(kuai),它(ta)可(ke)以(yi)使(shi)主(zhu)機(ji)知(zhi)道(dao)這(zhe)個(ge)設(she)備(bei)。每(mei)個(ge)描(miao)述(shu)符(fu)包(bao)含(han)了(le)這(zhe)個(ge)設(she)備(bei)整(zheng)體(ti)的(de)信(xin)息(xi)或(huo)者(zhe)某(mou)個(ge)元(yuan)素(su)的(de)信(xin)息(xi)。所(suo)有(you)的(de)USB外設必須響應對標準的USB描述符的請求。
該係統中使用了1個接口和2個終端(控製和中斷輸入)。由於受Win98的限製還不能使用中斷輸出終端,因此為了解決這個問題,我們通過在端點0中使用SetReport傳輸PC機欲送往IC卡門禁考勤設備的數據。
數據接收是在Output Reports中完成的。根據送往IC卡門禁考勤設備最大的數據量,係統定義為16K個8位域.發送數據給主機是在輸入報告中完成的,它是8K個8位域。
2、設備檢測和列舉
當1個USB人機接口類(HID)設備第一次連接到總線,它將被總線供電但仍然非功能性等待1個總線複位。D-端的上拉電阻通知Hub連接上了新的設備,主機也同時知道了新連接的USB設備,並將它複位。緊跟輸入包之後,主機發送1個配置包,從缺省地址0處讀取設備描述符.讀到描述符後,主機將分配一個新的地址給設備,並繼續查詢關於設備描述、配置描述、renjibaogaomiaoshudexinxi,shebeijiangkaishiduixinfenpeidedizhizuochufanying。genjucongshebeichufanhuidexinxi。zhujizhidaolebeishebeizhichideshujuzhongduandeshuliang,wanchengliejuguocheng.列舉結束後,Windows將把新的設備加入到控製麵板的設備管理器中顯示。
為此,在微控製器中必須寫入訪問描述符的代碼,這樣便於對主機在列舉設備時發送的請求作出有效的辨識和響應.在設備方麵需要創建一個INF文件,使Windows能夠辨識設備,並且為設備找到其驅動。由於操作係統提供了簡單的INF文件,因此,開發中隻需要編寫寫入到微控製器中的程序。
3、數據發送和接收過程
發送數據到門禁考勤係統是通過控製端點0中使用SetReport來完成的。主機先向門禁考勤係統請求發送數據,設備響應請求後,主機便開始執行。當有數據到達設備的終端0時,將對設備產生一個中斷。此時相應的中斷服務程序便將數據複製到數據緩衝區。一旦進入端點0的中斷服務程序,所有的中斷必須關閉,確保能夠正確地複製數據。
微處理器的數據緩衝區編程為可以接收64gezijie,zhegezhishicunfangzaishezhibaodebaotouqingqiuxinxizhong。congzhujichujieshoudaodezuidabaodaxiao,shigenjutajiangfasonggeimenjinkaoqinxitongdezuidashujulianglaijuedingde。
係統還使用了Put_command線程,通過1個 I/O端口引腳,向門禁考勤係統串口發送數據。在執行此線程時,根據串口通信協議插入了起始位、停止位以及相應的延時。
從門禁考勤係統接收數據的過程是利用端點1完成的。端點1配置為1個中斷輸入端點,當有1個起始位到達引腳時,GPIO中斷必須打開,並關閉所有其它類型中斷。設計中通過使用1個Get_Serial線程來收集I/O引腳發出的串行數據,並把它存入數據緩衝區.同時該線程負責檢驗接收到的起始位和停止位的正確性。當收到8個字節時,將接收緩衝區中的數據複製到終端1的緩衝區,並且允許微處理器響應中斷輸入請求。
考慮到一般串行口的有效波特率的範圍在300~19 200 bps,我們按處於最大波特率19 200 bps的情況來考慮。傳輸1個字符需要時間接近0.75ms;而1個輸入中斷大約每10 ms送1個8字節的數據包,因此設計1個128字節的快速數據緩衝區便可以保證不會丟失數據。
RS-232-USB接口轉換模塊用於改進我們的IC卡門禁考勤係統,使用效果良好。
相關閱讀:
每周一問精華解答:如何進行USB接口電磁兼容設計?
方案對比:三種USB接口充電電路設計方案
高分辨率傳感器USB接口設計
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 貿澤EIT係列新一期,探索AI如何重塑日常科技與用戶體驗
- 算力爆發遇上電源革新,大聯大世平集團攜手晶豐明源線上研討會解鎖應用落地
- 創新不止,創芯不已:第六屆ICDIA創芯展8月南京盛大啟幕!
- AI時代,為什麼存儲基礎設施的可靠性決定數據中心的經濟效益
- 築基AI4S:摩爾線程全功能GPU加速中國生命科學自主生態
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
微波功率管
微波開關
微波連接器
微波器件
微波三極管
微波振蕩器
微電機
微調電容
微動開關
微蜂窩
位置傳感器
溫度保險絲
溫度傳感器
溫控開關
溫控可控矽
聞泰
穩壓電源
穩壓二極管
穩壓管
無焊端子
無線充電
無線監控
無源濾波器
五金工具
物聯網
顯示模塊
顯微鏡結構
線圈
線繞電位器
線繞電阻




