新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 利用FPGA實現(xiàn)外設(shè)通信接口之:利用FPGA實現(xiàn)RS-232C串行接口

        利用FPGA實現(xiàn)外設(shè)通信接口之:利用FPGA實現(xiàn)RS-232C串行接口

        作者: 時間:2017-06-04 來源:網(wǎng)絡(luò) 收藏

        10.2利用實現(xiàn)

        10.2.1RS-232C接口概述

        RS-232C標準最初是為遠程通信連接數(shù)據(jù)終端設(shè)備DTE(DataTerminalEquipment)與數(shù)據(jù)通信設(shè)備DCE(DataCommunicationEquipment)而制定的。因此這個標準的制定,并未考慮計算機系統(tǒng)的應(yīng)用要求。

        本文引用地址:http://www.104case.com/article/201706/348789.htm

        目前,RS-232C又廣泛地應(yīng)用于計算機與終端或外設(shè)之間的近端連接標準。顯然,這個標準的有些規(guī)定和計算機系統(tǒng)是不一致的,甚至是相矛盾的。

        RS-232C標準中所提到的“發(fā)送”和“接收”,都是站在DTE立場上,而不是站在DCE的立場來定義的。由于在計算機系統(tǒng)中,往往是CPU和I/O設(shè)備之間傳送信息,兩者都是DTE,因此雙方都能發(fā)送和接收。

        RS-232C標準(協(xié)議)的全稱是EIA-RS-232C標準,其中EIA(ElectronicIndustryAssociation)代表美國電子工業(yè)協(xié)會,RS(Recommendedstandard)代表推薦標準,232是標識號,C代表RS232的最新一次修改(1969年)。

        10.2.2RS-232C接口的電氣標準

        RS-232C采用的不是TTL電平的接口標準,而是負邏輯,即邏輯“1”為−3V~−15V,邏輯“0”為+3V~+15V。

        RS-232C對電器特性、邏輯電平和各種信號線功能都作了規(guī)定。

        在TxD和RxD上:邏輯1(MARK)為3V~−15V,邏輯0(SPACE)為+3~+15V。

        在RTS、CTS、DSR、DTR和DCD等控制線上:

        信號有效(接通,ON狀態(tài),正電壓)為+3V~+15V;

        信號無效(斷開,OFF狀態(tài),負電壓)為−3V~−15V。

        RS-232C是用正負電壓來表示邏輯狀態(tài),與TTL以高低電平表示邏輯狀態(tài)的規(guī)定不同。因此,為了能夠同計算機接口或終端的TTL器件連接,必須在RS-232C與TTL電路之間進行電平和邏輯關(guān)系的變換。

        10.2.3RS-232C的通信協(xié)議

        所謂“串行通信”是指外設(shè)和計算機間使用一根數(shù)據(jù)信號線(另外需要地線,可能還需要控制線),數(shù)據(jù)在一根數(shù)據(jù)信號線上一位一位地進行傳輸,每一位數(shù)據(jù)都占據(jù)一個固定的時間長度,如圖10.1所示。

        圖10.1RS-232C接口的數(shù)據(jù)通信方式

        這種通信方式使用的數(shù)據(jù)線少,在遠距離通信中可以節(jié)約通信成本,當然,其傳輸速度比并行傳輸慢。

        由于與接口之間按并行方式傳輸,接口與外設(shè)之間按串行方式傳輸,因此,在串行接口中,必須要有“接收移位寄存器”(串→并)和“發(fā)送移位寄存器”(并→串)。典型的串行接口的結(jié)構(gòu)如圖10.2所示。

        圖10.2串行接口模塊的結(jié)構(gòu)示意圖

        在數(shù)據(jù)輸入過程中,數(shù)據(jù)一位一位地從外設(shè)進入接口的“接收移位寄存器”,當“接收移位寄存器”中已接收完1個字符的各位后,數(shù)據(jù)就從“接收移位寄存器”進入“數(shù)據(jù)輸入寄存器”。

        從“數(shù)據(jù)輸入寄存器”中讀取接收到的字符,并行讀取,即D7~D0同時被讀至累加器中;“接收移位寄存器”的移位速度由“接收時鐘”確定。

        在數(shù)據(jù)輸出過程中,F(xiàn)PGA把要輸出的字符(并行地)送入“數(shù)據(jù)輸出寄存器”,“數(shù)據(jù)輸出寄存器”的內(nèi)容傳輸?shù)?ldquo;發(fā)送移位寄存器”,然后由“發(fā)送移位寄存器”移位,把數(shù)據(jù)一位一位地送到外設(shè)。“發(fā)送移位寄存器”的移位速度由“發(fā)送時鐘”確定。

        接口中的“控制寄存器”用來容納FPGA送給此接口的各種控制信息,這些控制信息決定接口的工作方式。

        能夠完成上述串并轉(zhuǎn)換功能的電路,通常稱為“通用異步收發(fā)器”(:UniversalAsynchronousReceiverandTransmitter),包括:雙緩存發(fā)送數(shù)據(jù)寄存器、并行轉(zhuǎn)串行裝置、雙緩存輸入數(shù)據(jù)寄存器、串行轉(zhuǎn)并行裝置。

        RS232通信協(xié)議基本結(jié)構(gòu)如圖10.3所示,起始位低,停止位高。波特率范圍是300~115200bit/s;8位數(shù)據(jù)位;一位或兩位停止位;奇校驗、偶校驗或無校驗位。

        圖10.3RS232通信協(xié)議基本結(jié)構(gòu)

        10.2.4RS-232C接口的典型應(yīng)用

        RS-232C不僅可以用來實現(xiàn)FPGA系統(tǒng)與PC之間的低速率數(shù)據(jù)傳遞,而且可以廣泛應(yīng)用到工業(yè)控制和自動化儀器儀表領(lǐng)域。RS-485和RS-422等標準與RS-232C標準一樣,協(xié)議部分也采用了協(xié)議,因此FPGA的實現(xiàn)邏輯是相同的,只是接口電平不同。

        在FPGA上,可以實現(xiàn)多個單元。也就是說,單片F(xiàn)PGA可以支持多個RS-232C接口,比較適合需要多個串口的場合。傳統(tǒng)的單片機(MCU)或者ARM處理器一般只能支持2~3個UART接口,在這樣場合就需要外圍芯片來擴展UART。



        關(guān)鍵詞: RS-232C串行接口 UART FPGA

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 乐安县| 天全县| 丰县| 如皋市| 宁晋县| 资兴市| 肇州县| 崇义县| 腾冲县| 贞丰县| 商都县| 漯河市| 全州县| 文化| 阜新市| 建德市| 泰州市| 平武县| 格尔木市| 调兵山市| 土默特左旗| 剑河县| 年辖:市辖区| 额敏县| 明星| 晋宁县| 渝中区| 瑞昌市| 新平| 南华县| 东平县| 鄂托克旗| 安康市| 蓬莱市| 女性| 泌阳县| 镇康县| 文安县| 武宁县| 岳阳县| 平安县|