RS-232接口又稱之為RS-232口�串口、異步口或一個COM(通信)口�"RS-232"是其最明確的名稱� 在計算機世界�,大量的接口是串口或異步�,但并不一定符合RS-232標準,但我們也通常認為它是RS-232口� 嚴格地講RS-232接口是DTE(數(shù)�(jù)終端設備)和DCE(數(shù)�(jù)通信設備)之間的一個接口,DTE包括計算�、終�、串口打印機等設�。DCE通常只有�(diào)�解調(diào)�(MODEM)和某些交換機COM口是DCE。標準指出DTE應該擁有一�插頭(針輸出�,DCE擁有一�插座(孔輸出�。這經(jīng)常被制造商忽視(如:WYSE終端就是孔輸出DTE串口)但影響不大,只要搞清楚DCE、DTE就行�,然后按照標準接線圖接線就不會錯��
目前RS232是PC與通信工業(yè)中應用最廣泛的一種串行接口,RS代表推薦標準�232是標識號�RS232采取不平衡傳輸方�,即單端通信。一個完整的RS232接口�22根線,采用標準的25芯插頭座。除此之�,目前廣泛應用的還有一�9芯的RS232接口。它們的外觀都是一個D形,對接的兩個接口又分為針式和孔式兩��
RS232標準中定義了邏輯1和邏�0電壓級數(shù),以及標準的傳輸速率和連接器類�。信號大小在正的和負�3�15 V之間�RS232�(guī)定接�0的電平是無效�,邏�1�(guī)定為負電�,有效負電平的信號狀�(tài)稱為傳號(Marking),它的功能意義為OFF;邏�0�(guī)定為正電平,有效正電平的信號狀�(tài)稱為空號(Spacing),它的功能意義為ON�
�RS232標準中規(guī)定的設備可以分為�(shù)�(jù)終端設備(DTE)和數(shù)�(jù)通信設備(DCE)兩類,這種分類定義了不同的線路用來�(fā)送和接收信號。一般來�,計算機和終端設備有DTE連接器,�(diào)制解�(diào)器和打印機有DCE連接��
本文采用被廣泛使用的9�RS232接口進行�(shù)�(jù)采集�
表所示為在PC機、調(diào)制解�(diào)器和路由器等�(wǎng)絡設備中使用�9芯RS 232接口的信號和管腳分配�
1.PC機串口的RTS和DTR及擴展電�
RTS和DTR是PC機中8250芯片的MODEM控制寄存器的兩個輸出引角D1和D0�,口地址為COM1的是3FCH,口地址為COM2的是2FCH。我們可以利用對MODEM控制寄存�3FCH�2FCH的寫操作對其進行控制。從而利用該操作和擴展電路實�(xiàn)對TXD和RXD進行多線擴展,是其擴展電�� 在PC機串口擴展電路中�74LS161是二進制計數(shù)器,1腳是�0��2腳是計數(shù)�,計�(shù)脈沖為負脈沖信號�4051是八選一雙向�(shù)�/模擬電子開關電路,其中一片用于正向輸出,一片用于反向輸�。該擴展電路工作原理是通過控制PC機串口的DTR輸出的高低電平來形成74LS161的P2腳計�(shù)端的負脈沖信號,�161的輸出端P14(QA�、P13(QB�、P12(QC�、P11(QD)腳依次�0000�1111十六個狀�(tài)中變�,本電路僅使用了QA、QB、QC三個輸出來形成�4051的ABC控制,最終使�4051�1)的輸入端TXD依次通過與TX1~TX8導通而得到輸出信��4051�2)的輸出端RXD與RX1~RX8依次導通形成輸入信�。由于RXD和TXD的導通是一一對應�,因此串口通信就可以依次通過與多�8個帶有三線基本串口的外部設備進行通信傳輸以實�(xiàn)�(shù)�(jù)傳�。PC機端的電平轉(zhuǎn)換電路是將RS232電平�(zhuǎn)換為TTL電平,外設端的電平轉(zhuǎn)換電路是將TTL電平�(zhuǎn)換為RS232電平��
2.電路使用程� 對PC機串口COM1的編程如下:
對COM1口的波特率等設置� MOV DX�3FCH MOV AL,XXXXXX01B OUT DX,AL;D1生成RTS負脈�,對74LS161輸出端清0 MOV AL,XXXXXX11B� OUT DX,AL �4051的RX1和TX1導� CALL COM ;調(diào)用通信子程�,與個外部設備通信� MOV CX�7 ;設置循�(huán)計數(shù)�� NEXT:MOV DX �3FCH MOV AL,XXXXXX10B OUT DX ,AL ;D0位生成DTR的負脈沖,形�161的P2腳計�(shù)脈沖 MOV AL,XXXXXX11B OUT DX,AL ;RX2和TX2導� CALL COM ;調(diào)用通信子程�,與第二個外部設備通信 LOOP NEXT ;循�(huán)與另�6個外部設備通信� 3.使用說�
由于該擴展的多路接口在通信時共用一個子程序,因此在與某一路導通時,系�(tǒng)只能與這一路的外部設備進行通信�(lián)�� 如果工作�(xiàn)場需要立即和某一路通信,則需要對3FCH的D1位執(zhí)行兩個寫操作并在RTS腳形成負脈沖,以�7416I�0�,再連接�(zhí)行若干次對DTR的兩次寫操作。例如想對第4路外設通信,則需要執(zhí)行完成對74LS161�0�,再連續(xù)三次�3FCH的D0位進行兩個寫操作以形成DTR腳的負脈�,然后即可調(diào)用通信子程�� 如需使用PC機的COM2串口,只需將程序中�3F8H�3FDH全部換成2F8H�2FDH即可� 如果使用十六選一雙向�(shù)�/模擬電子開關電路,可�74LS161的QA、QB、QC、QD四個輸出端接至電子開關的四個控制端A、B、C、D,這樣就可以達到一個PC機的RS232口與16個帶有串口的外設的數(shù)�(jù)通信�
RS-232接口又稱之為RS-232�、串�、異步口或一個COM(通信)口�"RS-232"是其最明確的名稱� 在計算機世界�,大量的接口是串口或異步�,但并不一定符合RS-232標準,但我們也通常認為它是RS-232�� 嚴格地講RS-232接口是DTE(數(shù)�(jù)終端設備)和DCE(數(shù)�(jù)通信設備)之間的一個接口,DTE包括計算�、終�、串口打印機等設�。DCE通常只有�(diào)制解�(diào)器(MODEM)和某些交換機COM口是DCE。標準指出DTE應該擁有一個插頭(針輸出),DCE擁有一個插座(孔輸出)。這經(jīng)常被制造商忽視(如:WYSE終端就是孔輸出DTE串口)但影響不大,只要搞清楚DCE、DTE就行�,然后按照標準接線圖接線就不會錯�。(DTE、DCE 引腳定義相同�
接口的電氣特� 在RS-232-C中任何一條信號線的電壓均為負邏輯關系。即:邏 輯�1��-5� -15V;邏輯�0� +5� +15V 。噪聲容限為2V。即 要求接收器能識別低至+3V的信號作為邏輯�0”,高到-3V的信� 作為邏輯�1�
接口的物理結(jié)�(gòu) RS-232-C接口連接器一般使用型號為DB-25�25芯插頭座,通常插頭在DCE�,插座在DTE�. 一些設備與PC機連接的RS-232-C接口,因為不使用對方的傳送控制信�,只需三條接口�,即“發(fā)送數(shù)�(jù)�、“接收數(shù)�(jù)”和“信號地�。所以采用DB-9�9芯插頭座,傳輸線采用屏蔽雙絞��
傳輸電纜長度 由RS-232C標準�(guī)定在碼元畸變小于4%的情況下,傳輸電纜長度應�50英尺,其實這�4%的碼元畸變是很保守的,在實際應用�,約�99%的用戶是按碼元畸�10-20%的范圍工作的,所以實際使用中距離會遠超過50英尺,美國DEC公司曾規(guī)定允許碼元畸�?yōu)?10%而得出附�2 的實驗結(jié)�。其�1號電纜為屏蔽電纜,型號為DECP.NO.9107723 �(nèi)有三對雙絞線,每對由22# AWG 組成,其外覆以屏蔽網(wǎng)�2號電纜為不帶屏蔽的電�。型號為DECP.NO.9105856-04�22#AWG的四芯電�� 附表2 DEC 公司的實驗結(jié)��
USB作為一種新的PC機互連協(xié)議,使外設到計算機的連接更加高效、便�。這種接口適合于多種設�,不僅具有快�、即插即用、支持熱插拔的特�,還能同時連接多達127個設�,解決了如資源沖突、中斷請求(IRQs)和直接�(shù)�(jù)通道(DMAs)等問題。因�,越來越多的開�(fā)者欲在自己的�(chǎn)品中使用這種標準接口。而RS232是單個設備接入計算機�,常采用的一種接入方�,其硬件實現(xiàn)簡單� 因此在傳�(tǒng)的設備中有很多采用了這種通信方式� 一般的IC卡門禁考勤系統(tǒng)也使用RS232接口與PC機通信。如果將USB技術應用于IC卡門禁考勤系統(tǒng)與PC機之間的�(shù)�(jù)通信,這樣,不僅能使IC卡門禁考勤設備具備USB通信的諸多優(yōu)�,而且對PC機而言還可以節(jié)�1個RS232串口為其它通信所��
1 USB系統(tǒng)概述
USB�(guī)范描述了總線特�、協(xié)議定義、編程接口以及其它設計和�(gòu)建系�(tǒng)時所要求的特�。USB是一種主從總線,工作時USB主機處于主模�,設備處于從模式。USB系統(tǒng)所需要的的系�(tǒng)資源�,USB系統(tǒng)軟件所使用的內(nèi)存空�、USB主控制器所使用的內(nèi)存地址空間(I/O地址空間)和中斷請求(IRQ)線。USB設備可以是功能性的,如顯示器、鼠標或者集線器之類。它們可以作低速或者高速設備實�(xiàn)。低速設備速率限制�1.5 Mb/s,每一個設備有一些專有寄存器,也就是端點(endpoint)。在進行�(shù)�(jù)交換�,可以通過設備�(qū)動間接訪問它。每一個端點支持幾種特殊的傳輸類型,并且有一個的地址和傳輸方向。不同的是端�0 僅用作控制傳�,并且其傳輸可以是雙向的�
系統(tǒng)上電�,USB主機負責檢測設備的連接與拆�、初始化設備的列舉過�,并根據(jù)設備描述表安裝設備驅(qū)動后自動重新配置系統(tǒng),收集每個設備的狀�(tài)信息。設備描述表標識了設備的屬性、特征并描述了設備的通信要求。USB主機根據(jù)這些信息配置設備、查找驅(qū)�,并且與設備通信�
典型的USB�(shù)�(jù)傳輸是由設備�(qū)動開始的,當它需要與設備通信�,設備驅(qū)動提供內(nèi)存緩沖區(qū),用來存放設備收到或者即將發(fā)送的�(shù)�(jù)。USB�(qū)動提供USB設備�(qū)動和USB主控制器之間的接口,并將傳輸請求�(zhuǎn)化為USB事務,轉(zhuǎn)化時需要與帶寬要求及協(xié)議結(jié)�(gòu)保持一�。某些傳輸是由大塊數(shù)�(jù)�(gòu)成的,這時需要先將它劃分為幾個事物再進行傳輸�
具有相似功能的設備可以組成一類,這樣便于分享共有的特性和使用共同的設備驅(qū)動程序。每個類可以定義其自己的描述�,如:HID類描述符� Report描述�。HID類是由人控制計算機系�(tǒng)的設備組成的,它定義了一個描述HID設備的結(jié)�(gòu),并且表明了設備的通信要求。HID設備描述符必須支持端點輸入中�,固件也必須包括一個報告描述符,表明接收和�(fā)送數(shù)�(jù)的格�。在IC卡門禁考勤系統(tǒng)引入RS232到USB的接口轉(zhuǎn)換模塊后,從系統(tǒng)所具有的特性來�,應該屬于HID設備。因�,兩種特殊的HID類請求必須被支持:SetReport和GetReport 。這些請求使設備能接收和發(fā)送一般的設備信息給主�。在沒有中斷輸出終端時,SetReport是主機發(fā)送數(shù)�(jù)給HID設備的方��
2 系統(tǒng)要求
為了實現(xiàn)IC卡門禁考勤系統(tǒng)中RS232-USB的接口轉(zhuǎn)換,需�1臺支持USB的主�,同時還要提供主機上用于與外設通信的驅(qū)�,一般由操作系統(tǒng)提供。此�,還需開發(fā)在主機上�(zhí)行的客戶端應用程序。在設備�,需要提供具有USB接口的主控制器芯片,以及編寫主控制器上執(zhí)行的USB通信代碼和用于執(zhí)行外設功能的相關代碼�
2.1 主機要求
主機必須能夠通過設備�(qū)動接收USB�(shù)�(jù),并且使這些�(shù)�(jù)對處理這些請求的應用程序有�。在主機中必須有一個驅(qū)動負責處理USB傳輸、辨識設�、向USB設備收發(fā)�(shù)�(jù);同�,還需要有一個設備驅(qū)�-虛擬化串行口,仿效真實的串口。這個驅(qū)動必須能夠像真實的串口接收和�(fā)送USB�(shù)�(jù)�
從應用的觀�,設備驅(qū)動必須能收發(fā)�(shù)�(jù),可以通過使用一個虛擬化的串口或通過�(zhuǎn)化為USB �(shù)�(jù)實現(xiàn)。微軟提供了一個叫作USB POS的設備驅(qū)�,它允許應用程序訪問USB設備�,好像它們連接到標準串口上一�。系�(tǒng)大致�(jié)�(gòu)方框圖如�1所��
2.2 設備要求
在定義即將使用的微控制器�,必須說明一些通信要求,如:通信速率、頻率、傳�?shù)�?shù)�(jù)量等??紤]到IC卡門禁考勤系統(tǒng)有效的通信速率,可以把�(zhuǎn)換器作為一個低速的設備使用,低速設備通信速度可以�10~100 Kb/s的范圍變�。考慮到傳�?shù)�?shù)�(jù)量和傳輸?shù)念l�� 此系�(tǒng)中使用中斷的傳輸類型。中斷傳輸可以在2個方向進行,但不能同時進行,這種類型的傳輸要求在�(guī)定的時間里完成相當大�(shù)�(jù)量的傳輸任務�
對于�(zhuǎn)換模�,它可以用于PC機的�(shù)�(jù)收發(fā),操作系�(tǒng)提供了HID�(qū)�� 允許使用中斷傳輸模式。對于低速設備的一個事�,中斷傳�?shù)陌萘渴?8字節(jié),如果需要發(fā)送大量的�(shù)�(jù),則必須把它分割為很多事務�
�(zhuǎn)換模塊要定義的另一個特性是所需端點�(shù)。如上所�� 端點是微控制器在USB通信過程中所用來�(fā)送和接收�(shù)�(jù)的緩沖區(qū)。此系統(tǒng)中,該轉(zhuǎn)換器定義�2個端點:一個端點(端點0)用來控制傳�,另一個端點是中斷輸入端點,定義為�(fā)�(shù)�(jù)給PC機�
根據(jù)以上要求,通過研究比較�(xiàn)有的微控制器,考慮到如�(nèi)存空�、價格和開發(fā)包等因素,我們選用Cypress家族的一�8位RISC微控制器CY7C634XX/5XX� 它使用哈佛總線結(jié)�(gòu),是對較� I/O要求的低速應用設備的低價解決方案�
�2為IC卡門禁考勤系統(tǒng)USB通信實現(xiàn)硬件方框原理圖�
3 軟件設計和執(zhí)�
系統(tǒng)軟件�6部分組成:定義描述符、設備檢測和列舉、端點中斷服務程�、USB�(shù)�(jù)交換模塊、串行口�(shù)�(jù)交換模塊、USB/Serial模塊接口� 下面簡要描述其中部分模塊程序的功能和實現(xiàn)思想�
3.1 描述符定�
描述符是�(shù)�(jù)�(jié)果或信息的格式化�,它可以使主機知道這個設�。每個描述符包含了這個設備整體的信息或者某個元素的信息。所有的USB外設必須響應對標準的USB描述符的請求�
該系�(tǒng)中使用了1個接口和2個終�(控制和中斷輸�)。由于受Win98的限制還不能使用中斷輸出終端,因此為了解決這個問題,我們通過在端�0中使用SetReport傳輸PC機欲送往IC卡門禁考勤設備的數(shù)�(jù)�
�(shù)�(jù)接收是在Output Reports中完成的。它根據(jù)送往IC卡門禁考勤設備的數(shù)�(jù)�,系�(tǒng)定義�16K�8位域。發(fā)送數(shù)�(jù)給主機是在輸入報告中完成�,它�8K�8位域�
3.2 設備檢測和列�
�1個USB 人機接口類(HID)設備次連接到總線, 它將被總線供電但仍然非功能性等�1個總線復�。D-端的上拉電阻通知Hub連接上了新的設備,主機也同時知道了新連接的USB設備,并將它復位。緊跟輸入包之后,主機發(fā)�1個配置包,從缺省地址0處讀取設備描述符。讀到描述符�,主機將分配一個新的地址給設備,并繼�(xù)查詢關于設備描述、配置描�、人機報告描述的信息,設備將開始對新分配的地址作出反應。根�(jù)從設備處返回的信�,主機知道了被設備支持的�(shù)�(jù)終端的數(shù)�,完成列舉過�。列舉結(jié)束后,Windows將把新的設備加入到控制面板的設備管理器中顯示�
為此,在微控制器中必須寫入訪問描述符的代�,這樣便于對主機在列舉設備時發(fā)送的請求作出有效的辨識和響應。在設備方面需要創(chuàng)建一個INF文件,使Windows能夠辨識設備,并且為設備找到其驅(qū)�。由于操作系�(tǒng)提供了簡單的INF文件,因�,開�(fā)中只需要編寫寫入到微控制器中的程序�
3.3 �(shù)�(jù)�(fā)送和接收過程
�(fā)送數(shù)�(jù)到門禁考勤系統(tǒng)是通過控制端點0中使用SetReport來完成的。主機先向門禁考勤系統(tǒng)請求�(fā)送數(shù)�(jù),設備響應請求后,主機便開始�(zhí)行� 當有�(shù)�(jù)到達設備的終�0�,將對設備產(chǎn)生一個中�。此�,相應的中斷服務程序便將�(shù)�(jù)復制到數(shù)�(jù)緩沖區(qū)� 一旦進入端點0的中斷服務程�,所有的中斷必須關閉,確保能夠正確地復制�(shù)�(jù)�
微處理器的數(shù)�(jù)緩沖區(qū)編程為可以接�64個字節(jié),這個值是存放在設置包的包頭請求信息中。從主機處接收到的包大小,是根據(jù)它將�(fā)送給門禁考勤系統(tǒng)的數(shù)�(jù)量來決定��
系統(tǒng)還使用了Put_command線程,通過1� I/O端口引腳,向門禁考勤系統(tǒng)串口�(fā)送數(shù)�(jù)。在�(zhí)行此線程�,根�(jù)串口通信�(xié)議插入了起始位、停止位以及相應的延��
從門禁考勤系統(tǒng)接收�(shù)�(jù)的過程是利用端點1完成的。端�1配置�1個中斷輸入端�,當�1個起始位到達引腳�,GPIO中斷必須打開,并關閉所有其它類型中�� 設計中通過使用1個Get_Serial線程來收集I/O引腳�(fā)出的串行�(shù)�(jù),并把它存入�(shù)�(jù)緩沖區(qū)� 同時該線程負責檢驗接收到的起始位和停止位的正確�。當收到8個字節(jié)�,將接收緩沖區(qū)中的�(shù)�(jù)復制到終�1的緩沖區(qū),并且允許微處理器響應中斷輸入請��
考慮到一般串行口的有效波特率的范圍在300~19 200 bps� 我們按處于波特�19 200 bps 的情況來考慮, 傳輸1個字符需要時間接�0.75 ms;�1個輸入中斷大約每10 ms�1�8字節(jié)的數(shù)�(jù)�,因此,設�1�128字節(jié)的快速數(shù)�(jù)緩沖區(qū)便可以保證不會丟失數(shù)�(jù)�
RS232-USB接口�(zhuǎn)換模塊用于改進我們的IC卡門禁考勤系統(tǒng),使用效果良好�
維庫電子�,電子知�,一查百通!
已收錄詞�153979�