吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于FPGA的UART控制器實現RS-232電平和TTL/CMOS電平的轉換設計

電子設計 ? 來源:中國科技信息 ? 作者:張明 ? 2021-03-26 14:19 ? 次閱讀

異步串行通信要求的傳輸線少,可靠性高,傳輸距離遠,被廣泛應用于微機和外設的數據交換。實現串口通信主要需要完成兩部分工作:

將串口電平轉換為設備電路板的工作電平,即實現RS-232電平和TTL/CMOS電平的轉換;

接收并且檢驗串行的數據,將數據變成并行的并提供給處理器處理。

實現RS-232電平和TTL/CMOS電平轉換可以用接口芯片來實現,實現數據的串行到并行轉換用的是UART,它們是實現串行通信必不可少的兩個部分。雖然目前大部分處理器芯片中都集成了UART,但是一般FPGA芯片卻沒有這個特點,所以使用FPGA作為處理器可以有兩個選擇,第一個選擇是使用UART芯片進行串并轉換,第二個選擇是在FPGA內部實現UART功能。但所有的UART芯片都存在引腳較多、體積較大、與其他器件的接口較為復雜等缺點,從而會使設計的成本和難度增加。因此可以將需要的UART功能集成到FPGA內部,而利用VHDL語言將UART的核心功能集成,不僅解決傳統芯片的缺點,也使整個設計更加緊湊、穩定且可靠。

1、UART實現原理

UART主要有UART內核、信號監測器、移位寄存

器、波特率發生器、計數器、總線選擇器和奇偶校驗器總共7個模塊組成,如圖一所示。

基于FPGA的UART控制器實現RS-232電平和TTL/CMOS電平的轉換設計

UART各個模塊的功能如下:

(1)UART內核模塊

UART內核模塊是整個設計的核心。在數據接收時,UART內核模塊負責控制波特率發生器和移位寄存器,使得移位寄存器在波特率始終的驅動下同步的接收并且保存RS-232接收端口上的串行數據。在數據發送時,UART內核模塊首先根據待發送的數據和奇偶校驗位的設置產生完整的發送序列(包括起始位、數據位、奇偶校驗位和停止位),之后控制移位寄存器將序列加在到移位寄存器的內部寄存器里,最后再控制波特率發生器驅動移位寄存器將數據串行輸出。

(2)信號監督器模塊

信號檢測器用于對RS-232的輸入信號進行實時檢測,一旦發現新的數據則立即通知UART內核。

(3)移位寄存器模塊

移位寄存器的作用是存儲輸入或者輸出的數據。當UART接受RS-232輸入時,移位寄存器在波特率模式下采集RS-232輸入信號,并且保存結果;當UART進行RS-232輸出時,UART內核首先將數據加載到移位寄存器內,再使移位寄存器在波特率模式下將數據輸出到RS-232輸出端口上。

(4)波特率發生器模塊

由于RS-232傳輸必定是工作在某種波特率下,比如9600,為了便于和RS-232總線進行同步,需要產生符合RS-232傳輸波特率的時鐘,這就是波特率發生器的功能。

(5)奇偶檢驗器模塊

奇偶校驗器模塊是根據奇偶校驗的設置和輸入數據計算出相應的奇偶校驗位,它是通過純組合邏輯實現的。

(6)總線選擇模塊

總線選擇模塊用于選擇奇偶校驗器的輸入是數據發送總線還是數據接收總線。在接收數據時,總線選擇模塊將數據接收總線連接到奇偶校驗器的輸入端,來檢查已接收數據的奇偶校驗位是否正確;而在發送數據時,總線選擇模塊將數據發送總線連接到奇偶檢驗器的輸入端,UART內核模塊就能夠獲取并且保存待發送序列所需的奇偶校驗位了。

(7)計數器模塊

計數器模塊的功能是記錄串行數據發送或者接收的數目,在計數到某數值時通知UART內核模塊。

2、UART工作流程

UART的工作流程可以分為接收過程和發送過程兩部分。

接收過程指的是UART監測到RS-232總線上的數據,順序讀取串行數據并且將其輸出給CPU的過程。當信號監測器監測到新的數據(RS-232輸入邏輯變為0,即RS-232傳輸協議的起始位)就會觸發接收過程,其流程圖如圖二所示。首先UART內核會重置波特率發生器和移位寄存器,并且設置移位寄存器的工作模式為波特率模式,以準備接收數據。其次,移位寄存器在波特率始終的驅動下工作,不斷讀取RS-232串行總線的輸入數據,并且將數據保存在內部的寄存器內。接收完成后,UART內核會對已接收的數據進行奇偶檢驗并且輸出校驗結果。最后,UART內核會重置信號監測器,以準備進行下一次數據接收。

發送過程由加載和發送兩個步驟組成,如圖三所示。加載步驟是UART內核按RS-232串行發送的順序將起始位、數據位、奇偶校驗位和停止位加載到移位寄存器內,這個過程工作在系統時鐘下,相對于RS-232的傳輸速度來說非常快。完成加載步驟后,UART內核會重置波特率發生器,并且設置移位寄存器工作在波特率模式下,于是移位寄存器便在波特率時鐘的驅動下依次將加載的數據發送到RS-232的發送端TxD,這樣便產生了RS-232的數據發送時序。

3、UART各個模塊的實現

除UART內核模塊以外,其他模塊都較為簡單,用于實現某一具體功能。現在重點對UART內核模塊的實現做出介紹。

UART內核模塊的功能是控制數據接收、數據加載和數據發送的過程,這可以用狀態機來實現。下面就按接收和發送的過程來介紹UART內核模塊狀態機的實現。

(1)數據接收過程

數據接收過程的流程圖如圖二所示,可以定義3個狀態——空閑、接收和接收完成,其中狀態變換圖如圖四所示。

(2)數據加載和發送過程

數據加載和發送過程都是為了發送數據而設定的,所以將它們放在一起進行介紹。可以用4個狀態來實現上述的過程,即空閑、加載、發送和發送完成,其中的空閑狀態就是UART內核復位后的空閑狀態,和上面介紹的數據接收過程的空閑狀態一致。

數據加載和發送過程的狀態轉換圖如圖五所示。

4、仿真結果

在波特率為9600情況下對UART進行仿真,結果穩定可靠。該設計具有很好的可讀性和靈活性,具有很好的參考價值。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19407

    瀏覽量

    231169
  • 芯片
    +關注

    關注

    456

    文章

    51170

    瀏覽量

    427212
  • 控制器
    +關注

    關注

    112

    文章

    16445

    瀏覽量

    179430
收藏 人收藏

    評論

    相關推薦

    TTL電平和CMOS電平的區別!

    電平Uoh和輸出低電平Uol  Uoh≥2.4V,Uol≤0.4V  2.輸入高電平和輸入低電平  Uih≥2.0V,Uil≤0.8V  CMOS
    發表于 01-17 14:52

    EIA RS-232C與TTL轉換

    連接,必須在EIA RS-232C與TTL電路之間進行電平和邏輯關系的變換。實現這種變換的方法可用分立元件,也可用集成電路芯片。目前較為廣泛地使用集成電路
    發表于 07-09 00:33

    TTLRS232電平轉換電路及工作原理

    ,元件經濟,結構簡單設計巧妙 用三極管實現RS-232TTL電路 電路如下圖 1.DB9的2腳 TXD:為RS-232電平信號接收端,RX
    發表于 02-24 14:37

    TTLRS232電平轉換電路及工作原理

    實現DSP或MCU與PC通訊的電路,元件經濟,結構簡單設計巧妙 用三極管實現RS-232TTL電路 電路如下圖1.DB9的2腳 TXD:為RS-2
    發表于 02-25 13:30

    RS232電平TTL電平的區別

    分別使用寄存地址方式和HAL庫實現流水燈一.串口協議和RS-232標準,以及RS232電平TTL
    發表于 01-26 07:31

    RS232電平TTL電平的區別在哪

    一. 了解串口協議和RS-232標準,以及RS232電平TTL電平的區別;了解"USB/TTL
    發表于 02-10 07:53

    TTL CMOS RS232 RS485 RS422各種電平內容

    TTL CMOS RS232 RS485 RS422各種電平內容
    發表于 10-31 14:32 ?55次下載
    <b class='flag-5'>TTL</b> <b class='flag-5'>CMOS</b> <b class='flag-5'>RS232</b> <b class='flag-5'>RS</b>485 <b class='flag-5'>RS</b>422各種<b class='flag-5'>電平</b>內容

    RS232C/TTL電平轉換和串口取電

    本文為大家介紹簡單的RS232C/TTL電平轉換和串口取電。
    發表于 01-05 17:08 ?1.3w次閱讀
    <b class='flag-5'>RS232</b>C/<b class='flag-5'>TTL</b><b class='flag-5'>電平</b><b class='flag-5'>轉換</b>和串口取電

    UART功能集成到FPGA內部實現多模塊的設計

    實現RS-232電平和TTL/CMOS電平轉換可以用
    的頭像 發表于 10-18 07:54 ?2652次閱讀
    將<b class='flag-5'>UART</b>功能集成到<b class='flag-5'>FPGA</b>內部<b class='flag-5'>實現</b>多模塊的設計

    嵌入式五種重要概念串口、COM口、TTLRS-232RS-485有什么區別

    1、串口、COM口是指的物理接口形式(硬件)。而TTLRS-232RS-485是指的電平標準(電信號)。 2、接設備的時候,一般只接GND RX TX。不會接Vcc或者+3.3v
    的頭像 發表于 03-03 10:23 ?7940次閱讀

    串口、COM口、UART口, TTLRS-232RS-485區別詳解

    調試時總是會遇到各種各樣的接口,各種各樣的轉換板,似懂非懂的感覺很不爽! 首先,串口、UART口、COM口、USB口是指的物理接口形式(硬件)。而TTLRS-232
    發表于 03-13 09:20 ?1.3w次閱讀
    串口、COM口、<b class='flag-5'>UART</b>口, <b class='flag-5'>TTL</b>、<b class='flag-5'>RS-232</b>、<b class='flag-5'>RS</b>-485區別詳解

    嵌入式 TTL電平和CMOS電平

    TTL,CMOS都屬于數字電路。TTL電流控制器件輸出高電平>2.4V輸出低電平<0
    發表于 11-26 18:51 ?10次下載
    嵌入式 <b class='flag-5'>TTL</b><b class='flag-5'>電平和</b><b class='flag-5'>CMOS</b><b class='flag-5'>電平</b>

    TTL電平RS232電平的區別

    什么是TTL電平CMOS電平RS232電平?它們有什么區別呢?一般說來,
    的頭像 發表于 02-07 14:58 ?5673次閱讀

    cmos電平ttl電平如何轉換 怎么判斷ttl電路高低電平

    )是常用的數字電路家族,兩者都有自己的特點和應用范圍。在介紹如何轉換CMOS電平和TTL電平之前,我們先來了解一下它們的定義和特點。
    的頭像 發表于 02-22 11:10 ?3868次閱讀

    TTL電平RS-232接口的聯系

    在電子通信領域,電信號的傳輸和處理是至關重要的。TTL電平(Transistor-Transistor Logic)和RS-232接口是兩種常見的電信號標準,它們在不同的應用場景中發
    的頭像 發表于 01-16 10:13 ?128次閱讀
    喜来登百家乐官网的玩法技巧和规则 | 肇源县| 百家乐官网开户过的路纸| 博彩百家乐五2013124预测| 易胜博百家乐官网输| 黄金城百家乐官网手机用户| 至尊百家乐官网网| 百家乐可以作假吗| 百家乐官网怎样看点| 百家乐澳门路规则| 金赞娱乐成| 做生意的信风水吗| 零点棋牌官方下载| 乐中百家乐官网的玩法技巧和规则| 威尼斯人娱乐城上不了| 太阳城百家乐官网如何看路| 杰克百家乐玩法| 百家乐官网技巧阅读| 天地人百家乐现金网| 在线扎金花| 百家乐注册开户送彩金| 海阳市| 百家乐打法内容介绍| 南川市| 百家乐桌子北京| 战神百家乐官网娱乐| 百家乐游戏网站| 百家乐官网怎么压对子| 百家乐路单破| 百家乐官网的玩法和技巧| 百家乐微笑不倒| 百家乐官网美食坊| 太阳百家乐代理| 百家乐官网轮盘| 爱玩棋牌下载| 百家乐赌的技巧| 宁海县| 百樂坊百家乐的玩法技巧和规则 | 网络百家乐官网赌博视频| 大发888娱乐城首页| 百家乐官网拍照看|