<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è) > 嵌入式系統 > 設計應用 > 利用FPGA實(shí)現外設通信接口之:利用FPGA實(shí)現RS-232C串行接口

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

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

10.2利用實(shí)現

10.2.1RS-232C接口概述

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

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

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

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

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

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

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

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

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

在RTS、CTS、DSR、DTR和DCD等控制線(xiàn)上:

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

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

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

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

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

圖10.1RS-232C接口的數據通信方式

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

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

圖10.2串行接口模塊的結構示意圖

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

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

在數據輸出過(guò)程中,FPGA把要輸出的字符(并行地)送入“數據輸出寄存器”,“數據輸出寄存器”的內容傳輸到“發(fā)送移位寄存器”,然后由“發(fā)送移位寄存器”移位,把數據一位一位地送到外設。“發(fā)送移位寄存器”的移位速度由“發(fā)送時(shí)鐘”確定。

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

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

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

圖10.3RS232通信協(xié)議基本結構

10.2.4RS-232C接口的典型應用

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

在FPGA上,可以實(shí)現多個(gè)單元。也就是說(shuō),單片FPGA可以支持多個(gè)RS-232C接口,比較適合需要多個(gè)串口的場(chǎng)合。傳統的單片機(MCU)或者ARM處理器一般只能支持2~3個(gè)UART接口,在這樣場(chǎng)合就需要外圍芯片來(lái)擴展UART。



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

評論


相關(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>