《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于Nios II的UART與PC間的數據通信
基于Nios II的UART與PC間的數據通信
摘要: NiosII系列嵌入式處理器使用32位的指令集結構ISA,允許設計者在很短的時間內構建一個完整的可編程芯片系統,風險和成本比中小規模的ASIC小。從硬件和軟件兩個方面探討了基于CycloneII系列EP1C12Q240C8與PC的通信方案。
Abstract:
Key words :

     目前,微控制器系統在國民經濟和人民生活中得到了廣泛的運用,而數據傳輸業仍是一個很重要的領域。對于那些與計算機相距不遠的人——機交換設備和串行存儲的外部發備如終端、打印機、邏輯分析儀、磁盤等來說,采用串行通信方式交換數據已非常普遍。

    Nios II系列嵌入式處理器使用32位的指令集結構ISA,完全與二進制代碼兼容,它是Altera公司的第二代軟核嵌入式處理器,性能超過200DMIPS。允許設計者在很短的時間內構建一個完整的可編程芯片系統,風險和成本比中小規模的ASIC小。這種開發方式特別適合設計針對網絡、電信、數據通信、嵌入式和消費市場的各種嵌入式應用。

    本文基于以上這些特點,從硬件和軟件兩個方面探討了基于Cyclone II系列EP1C12Q240C8與PC的通信方案。

1 串行異步通信的硬件接口

    通用異步收發器,簡稱UART,能把字符的并行代碼變換成串行代碼發送出去,而且也能把這種格式的串行代碼接收下米,并且轉換成相應的并行代碼。串行異步通信協議中字符代碼傳輸格式如圖1所示。在沒有傳送代碼時,通信線會一直處丁邏輯1狀態,而傳送時,數據兩頭必須加上起始位和停止位。起始位總是邏輯0狀態。停止位總是邏輯1狀態,其持續時間可選為1位、1.5位或2位。數據的低位在前,但根據不同的編碼規則,數據可能有5位、6位、7位或8位。圖1中的校驗位可根據需要選擇奇校驗、偶校驗或不要校驗位。

1.1 UART內核綜述

       AVALON總線是一種結構相對簡單的總線,用于連接NiosⅡ和其他外設。它規定了主從部件間的端口連接關系,以及部件間通信的時序關系。AVALON總線擁有多種傳輸模式,以適應不同外設要求?;緜鬏斈J绞窃谥鲝耐庠O之間進行單字節,半字或字的傳輸。AVALON總線還支持一些高級傳輸模式,例如支持流操作,支持延時操作, 支持多個主設備同時訪問。帶Avalon接口的UART內核為Altera FPGA上的嵌入式系統合外部設備提供了串行字符流的通信方式,內核執行RS-232協議時序,由于大部分Altera FPGA系列上的I/O引腳不遵循RS-232電壓電平規范,如果通過RS-232連接器的信號直接與FPGA相連,可能會損害器件。為了滿足RS-232信號電平要求,在FPGA I/O腳和對應得RS-232外部接頭間需要連接一個外部電平轉換器。UART內核結構框圖如圖2所示,在UART內核和RS-232連接器之間采用Maxim公司生產的MAX3232型收發器。

 

UART發送器包括發送數據寄存器Txdata和相應的發送移位寄存器。Avalon主控制器通過Avalon從控制器端口寫數據到發送數據寄存器。在當前不進行串行發送移位操作時,發送移位寄存器自動從發送數據寄存器中轉入數據。發送移位寄存器直接連接到TXD輸出。數據最低有效位先從TXD移出。發送數據寄存器和發送移位寄存器提供雙重緩沖。主控制器可以在前一個字符正在移出時將新數值寫入發送數據寄存器,并可通過讀出狀態寄存器的發送準備好位TRDY、發送移位寄存器空位TMT和發送溢出錯誤位TOE來監視發送器的狀態。發送邏輯根據RS-232規范在串行TXD數據流中自動插入數量正確的起始位、校驗位和停止位。

UART接收器包括接收移位寄存器Rxdata和相應的接收數據寄存器。Avalon主控制器通過Avalon從控制器端口讀接收數據寄存器的數據。每當新字符完全接收后接收數據寄存器自動從接收移位寄存器裝入數據。接收移位寄存器和接收數據寄存器提供雙重緩沖。接收數據寄存器在后續字符正在移入接收移位寄存器時可以保持前面的接收字符。主控制器可通過讀狀態寄存器的接受準備好位RRDY、接收溢出錯誤位ROE、間斷檢測位BRK、校驗錯誤位PE和幀錯誤FE位來監控接收器的狀態。接收邏輯根據RS-232規范在串行RXD數據流中自動檢測數量正確的起始位、停止位和校驗位。接收邏輯檢查接收數據中的4種異常隋況,并設置對應的狀態寄存器位。

UART內核的內部波特率時鐘來源于Avalon時鐘輸入,內部波特率時鐘通過時鐘分頻器生成,除數值可以由系統指定,也可以由其寄存器中存器的16位值來決定,波特率和除數值之間的關系如下:

除數=int((時鐘頻率)/(波特率)+0.5)
波特牢=(時鐘頻率)/(除數+1)

1.2 UART內核的寄存器描述

接收寄存器Rxdata保存接收到的數據。新字符由RXD輸入,完全接收后狀態寄存器的接收準備好RRDY位置1。當從接收數據寄存器讀取數據后,狀態寄存器RRDY位清零。若RRDY位為1時,又有字符輸入,則發生溢出錯誤,狀態寄存器的接收溢出錯誤ROE位置1。不管前一個字符是否被讀出,新字符總是傳到接收數據寄存器。

發送寄存器Txdata上的字符數據由Avalon主控制器發送,當將字符寫入發送寄存器時,發送準備好TRDY位為0;當將字符從發送數據寄存器傳輸到發送移位寄存器時,TRDY位置1。如果在TRDY位為0時將字符寫入發送數據寄存器,結果是未知的。

狀態寄存器Status的狀態位反映UART內核狀態情況。每個狀態位與控制寄存器中的對應中斷使能位相聯系。狀態寄存器可以在任何時候讀取。

控制寄存器Control由控制UART內核操作的控制位組成,控制寄存器的每一位使能狀態寄存器中對應位的中斷。當狀態位及其對應的中斷使能位為1時,UART內核產生一個中斷。

除數寄存器Divisor的值用于生成波特率時鐘。

數據包結束字符Endofpacket由數據包結束符寄存其的值確定,以便可變長度的DMA傳輸。

UART內核的寄存器映射表如表1所列。

 

2 串行異步通信軟件的實現

為了適應系統不同類型的需要,UART驅動程序提供兩種方式:快速型和一般型??焖傩万寗映绦虿捎弥袛囹寗臃绞?,在設備不準備發送或接收數據時它允許處理器執行其他任務。由于UART數據率相對于處理器的速率較慢,快速驅動程序可以提供系統的處理性能。一般型驅動程序采用查詢執行方式,它在發送和接收每個字符前等待UART硬件的指示。

對于Nios II處理器用戶來說,Altera提供硬件抽象層HAL系統庫驅動程序,HAL系統庫API函數為Nios II處理器用戶提供訪問UART內核的完整特性。程序設計所涉及到的API函數如下:

(1) alt_avalon_uart_init
定義:void alt_avalon_uart_init(alt_avalon_uart_dev*dev,void*base,alt_u32 irq)
功能:用于初始化UART設備

(2) alt_avalon_uart_ioctl
定義:int alt_avalon_uart_ioctl(alt_fd*fd,int req,void*arg)
功能:處理基于HAL的程序請求設備指定的操作

(3) alr_avalon_uart_irq
定義:static void alt_avalon_uart_irq(void*context,alt_u32 id)
功能:處理UART的中斷操作

(4) alt_avalon_uart_read
定義:int alt_avalon uart_read(alt_fd*fd,char*ptr,int len)
功能:從UART中讀取數據

(5) alt_avalon_uart_write
定義:int alt_avalon_uart_write(alt fd*fd,const char*ptr,int len)
功能:寫一組數據到UART

以上幾個函數完全可以滿足UART與PC之間的數據通信,需要注意的是如果一次傳輸的數據過長,必須重新設置ALT_AVALON_UART_BUF_LEN的值,以保證傳輸過程中數據的正確性。如果此值過小,則在傳輸過程中可能會造成數據的丟失。在設置輸出終端時必須指定COM1/COM2端口,建立UART與PC之間的數據通路,用來接收從UART中發出的數據,同時通過這些端口從PC中發出數據到UART中。

本文所述的UART是基于Altera公司的一款主流低成本的FPGA,除了具有FPGA的優勢之外,還因為其CPU本身是以軟核的方式實現的,所以整個系統的功能可以根據需要進行功能定制,非常靈活。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美大片在线观看一区| 国产精品日韩二区| 久久av资源网站| 久久久久久久久久久成人| 国产日韩专区在线| 日韩视频在线观看| 亚洲日韩欧美视频| 国产美女精品| 国产情人节一区| 国产日韩亚洲欧美综合| 亚洲成色777777在线观看影院| 免费一级欧美片在线播放| 国产精品美女视频网站| 亚洲第一视频网站| 99综合视频| 亚洲精品资源美女情侣酒店| 欧美国产亚洲另类动漫| 在线播放国产一区中文字幕剧情欧美| 国产精品裸体一区二区三区| 欧美日韩国产精品一区二区亚洲| 亚洲福利视频专区| 亚洲欧美春色| 99视频超级精品| 国产有码在线一区二区视频| 欧美新色视频| 亚洲激情精品| 亚洲国产精品va在看黑人| 日韩视频中午一区| 亚洲免费观看高清完整版在线观看| 性欧美video另类hd性玩具| 亚洲精品美女在线观看| 一区二区三区回区在观看免费视频| 性色一区二区三区| 亚洲人成免费| 国产精品视频一二| 亚洲免费av观看| 亚洲欧美在线x视频| 日韩午夜av| 在线播放日韩专区| 巨乳诱惑日韩免费av| 一区二区三区成人精品| 久久一本综合频道| 在线不卡中文字幕播放| 亚洲综合视频一区| 亚洲精选91| 欧美伊久线香蕉线新在线| 亚洲人成人一区二区三区| 欧美吻胸吃奶大尺度电影| 欧美日韩精品国产| 欧美电影免费观看大全| 国产精品亚洲激情| 国产精品igao视频网网址不卡日韩| 欧美大香线蕉线伊人久久国产精品| 中日韩男男gay无套| 欧美精品一区二区三区一线天视频| 亚洲激情成人| 国产精品乱码一区二三区小蝌蚪| 欧美精品一区二区三区久久久竹菊| 欧美女激情福利| 极品少妇一区二区三区精品视频| 国产一区二区久久精品| 你懂的国产精品| 在线色欧美三级视频| 久久精品国产99精品国产亚洲性色| 狠狠色丁香久久综合频道| 国产精品99久久99久久久二8| 欧美在线国产| 在线色欧美三级视频| 国产一区二区欧美日韩| 亚洲一区二区动漫| 国产精品成人v| 亚洲欧洲日本专区| 欧美伊人影院| 久久精品国产第一区二区三区最新章节| 亚洲欧美日本视频在线观看| 亚洲在线观看视频网站| 欧美v国产在线一区二区三区| 久久久国产精品亚洲一区| 欧美日韩亚洲国产精品| 夜夜嗨av一区二区三区| 国产欧美 在线欧美| 欧美日韩视频专区在线播放| 欧美日韩三级一区二区| 欧美gay视频激情| 欧美 日韩 国产在线| 国内揄拍国内精品少妇国语| 久久亚洲春色中文字幕| 久久综合久久综合久久| 国产精品一香蕉国产线看观看| 久久夜色精品国产| 欧美h视频在线| 欧美午夜片欧美片在线观看| 国产九区一区在线| 欧美精品三级| 久久精品99久久香蕉国产色戒| 狠狠狠色丁香婷婷综合激情| 亚洲国产日韩精品| 亚洲摸下面视频| 欧美欧美午夜aⅴ在线观看| 国内一区二区在线视频观看| 亚洲欧美日韩电影| 香蕉成人啪国产精品视频综合网| 欧美精品91| 免费在线观看成人av| 亚洲国产第一页| 伊人精品久久久久7777| 久久久久综合一区二区三区| 亚洲久久一区| 亚洲国产婷婷香蕉久久久久久99| 亚洲欧美日韩天堂| 欧美视频国产精品| 亚洲欧美日韩国产成人精品影院| 免费一级欧美在线大片| 你懂的视频欧美| 蜜臀a∨国产成人精品| 久久国产精品99精品国产| 欧美日本韩国一区二区三区| 国产日韩精品一区二区浪潮av| 狂野欧美性猛交xxxx巴西| 国内免费精品永久在线视频| 亚洲视频精品| 亚洲先锋成人| 欧美精品v国产精品v日韩精品| 亚洲一区二区三区在线播放| 国产综合第一页| 国产日韩久久| 久久国产视频网站| 国产精品腿扒开做爽爽爽挤奶网站| 9l视频自拍蝌蚪9l视频成人| 欧美激情第一页xxx| 欧美国产亚洲另类动漫| 欧美性开放视频| 一区二区三区 在线观看视| 欧美一区二区三区视频在线| 欧美片网站免费| 亚洲综合色网站| 国产精品视频免费在线观看| 在线播放日韩欧美| 欧美一区三区二区在线观看| 亚洲美女精品久久| 亚洲激情电影中文字幕| 亚洲视频免费在线| 美女视频一区免费观看| 欧美性大战久久久久久久| 亚洲二区视频| 午夜精彩视频在线观看不卡| 国产精品v欧美精品v日韩精品| 国产主播精品在线| 欧美日韩一区二区三区免费看| 制服诱惑一区二区| 午夜视频一区在线观看| 欧美成人综合一区| 国产欧美日韩一区二区三区| 久久久精品五月天| 夜夜嗨av色综合久久久综合网| 在线观看亚洲一区| 国产欧美欧洲在线观看| 欧美在线免费看| 欧美xxx在线观看| 小辣椒精品导航| 亚洲精品国精品久久99热一| 亚洲精品老司机| 在线观看国产日韩| 激情成人综合| 国产精品视频不卡| 一区二区国产精品| 狠狠综合久久av一区二区老牛| 好看的av在线不卡观看| 久久天天综合| 亚洲免费在线精品一区| 国模私拍视频一区| 亚洲国产福利在线| 亚洲乱码国产乱码精品精天堂| 久久亚洲精品中文字幕冲田杏梨| 欧美成人中文字幕在线| 久久精品一本久久99精品| 在线成人欧美| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美在线看片| 国产欧美精品日韩| 亚洲欧洲在线看| 韩国一区电影| 99v久久综合狠狠综合久久| 久久夜色精品国产噜噜av| 亚洲精品自在在线观看| 亚洲午夜精品国产| 久久高清免费观看| 怡红院精品视频在线观看极品| 亚洲激情在线观看| 国产精一区二区三区| 久久国产精品99精品国产| 欧美在线播放一区二区| 欧美精品一区二区在线观看| 亚洲看片网站| 一区二区激情小说| 国产欧美高清| 亚洲日韩欧美视频| 国产一区二区三区最好精华液| 一本色道久久| 有坂深雪在线一区| 国产精品qvod| 欧美影院午夜播放| 午夜精品一区二区三区在线播放| 欧美日本精品在线| 久久久久久日产精品| 国产一区二区三区在线观看网站| 国产精品一区二区三区久久| 国产精品成人av性教育| 欧美一区二区三区啪啪| 国产欧美精品va在线观看| 欧美国产亚洲另类动漫| 一区二区三区在线观看国产| 亚洲影视在线| 国产精品qvod| 国产日产欧美精品| 亚洲人成人77777线观看| 欧美午夜精品久久久久免费视| 国产精品三级视频| 亚洲欧美一区二区视频| 亚洲电影免费观看高清| 国产真实乱偷精品视频免| 久久久精品一品道一区| 国产精品视频午夜| 亚洲福利在线看| 欧美激情精品久久久久久| 国产欧美精品一区aⅴ影院| 91久久精品日日躁夜夜躁国产| 欧美日韩亚洲高清| 91久久久久久久久久久久久| 开元免费观看欧美电视剧网站| 欧美日韩一区二区三区视频| 你懂的国产精品| 欧美自拍丝袜亚洲| 亚洲小说欧美另类婷婷| 亚洲一区精品电影| 欧美高清视频一二三区| 欧美成人影音| 一区二区三区国产精品| 国产精品久久久爽爽爽麻豆色哟哟| 欧美日韩三级一区二区| 欧美日韩综合精品| 国产乱码精品1区2区3区| 国产午夜精品全部视频在线播放| 91久久国产综合久久蜜月精品| 亚洲欧美成人综合| 亚洲九九九在线观看| 欧美剧在线观看| 欧美日韩一区二区视频在线观看| 国产精品久久久久免费a∨| 9久re热视频在线精品| 国产深夜精品| 牛人盗摄一区二区三区视频| 日韩亚洲欧美精品| 欧美激情精品久久久久久大尺度| 久久精品国产在热久久| 日韩视频一区二区三区在线播放| 亚洲国产精品久久| 国产精品视频观看| 欧美国产精品劲爆| 亚洲永久精品国产| 国产麻豆精品久久一二三| 国产精品天天摸av网| 国产精品视频第一区| 欧美成人一区在线| 久久av免费一区| 亚洲乱码视频| 亚洲大片在线观看| 久久精品在线免费观看| 欧美日韩成人精品| 国产欧美日韩91| 亚洲黄网站黄| 在线看日韩av| 激情久久久久| 欧美美女日韩| 欧美午夜视频在线观看| 欧美午夜精品久久久| 欧美一区二区视频在线观看2020| 国产精品家庭影院| 一区二区三区欧美在线观看| 午夜一区二区三视频在线观看| 欧美国产国产综合| 欧美啪啪一区| 欧美日韩一区二区欧美激情| 性欧美暴力猛交69hd| 国产免费成人| 在线一区二区三区四区| 国产精品久久久久久av福利软件| 亚洲人成网站精品片在线观看| 猫咪成人在线观看| 久久天堂精品| 一区二区三区在线视频播放| 欧美精品综合| 欧美日韩八区| 国产视频欧美| 国内成+人亚洲+欧美+综合在线| 狼人天天伊人久久| 欧美日韩一本到| 午夜在线视频观看日韩17c| 免费成人高清在线视频| 亚洲人成在线播放网站岛国| 久久视频一区二区| 在线一区二区三区四区五区| 久久久最新网址| 国产精品久久午夜| 国产伦精品一区二区三区在线观看| 亚洲亚洲精品在线观看| 欧美日韩性视频在线| **性色生活片久久毛片| 欧美在线视频观看| 亚洲欧洲日本mm| 99精品视频免费在线观看| 国产永久精品大片wwwapp| 中国av一区| 欧美日韩精品一区二区三区四区| 欧美电影免费| 国产精品成人一区二区三区吃奶| 久久久午夜电影| 国产精品草莓在线免费观看| 欧美日韩网站| 欧美午夜激情小视频| 久久精品国语| 伊人久久综合97精品| 精品91免费| 在线观看视频免费一区二区三区| 欧美fxxxxxx另类| 在线观看国产一区二区| 国产日韩欧美综合| 影音先锋中文字幕一区|