国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于Nios II的UART與PC間的數據通信

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

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總線擁有多種傳輸模式,以適應不同外設要求。基本傳輸模式是在主從外設之間進行單字節,半字或字的傳輸。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本身是以軟核的方式實現的,所以整個系統的功能可以根據需要進行功能定制,非常靈活。
本文地址:http://www.qingdxww.cn/thread-17784-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 利用模擬開發工具生態系統進行安全電路設計
  • 我們是Microchip
  • 深度體驗Microchip自動輔助駕駛應用方案——2025巡展開啟報名!
  • 想要避免發生災難,就用MPLAB SiC電源仿真器!
  • 貿澤電子(Mouser)專區

相關在線工具

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 四虎永久免费地址ww417 | 免费视频一区二区 | 精品成人在线观看 | 青青草手机视频在线观看 | 久久九九热 | 精品国产一区二区三区在线观看 | 欧美日韩a | 日韩精品一区二区三区中文字幕 | ntr中文字幕亚洲综合 | 欧美一区二区三区香蕉视 | 免费看黄在线网站 | 国产欧美日韩精品一区二 | 99久久综合狠狠综合久久 | 色国产精品| 老司机精品久久 | 99热这里只有免费国产精品 | 热久久精品免费视频 | 男女视频免费看 | 最新在线黄色网址 | 97国产蝌蚪视频在线观看 | 9久热久爱免费精品视频在线观看 | 国产吧在线 | 久久久久久久久久久9精品视频 | 欧美交 | 亚洲成人国产精品 | 日本黄色app | 欧美有码视频 | 精品国产品国语在线不卡丶 | 久久青草精品免费资源站 | 亚洲一卡二卡三卡四卡无卡麻豆 | 久久99热精品免费观看动漫 | 老外黑人一级毛片 | 日日射日日干 | 久久精品99毛片免费 | 久久99热不卡精品免费观看 | 日本免费精品 | 欧美日韩国产另类一区二区三区 | 国产福利午夜自产拍视频在线 | 特赦1959全集免费观看 | 国产原创麻豆精品视频 | 欧美人与动性行为网站免费 |