新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Nios II的UART與PC間的數據通信

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

        作者: 時間:2011-05-11 來源:網絡 收藏

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

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

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

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

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

          

          1.1 內核綜述

          AVALON總線是一種結構相對簡單的總線,用于連接Ⅱ和其他外設。它規定了主從部件間的端口連接關系,以及部件間通信的時序關系。AVALON總線擁有多種傳輸模式,以適應不同外設要求。基本傳輸模式是在主從外設之間進行單字節,半字或字的傳輸。AVALON總線還支持一些高級傳輸模式,例如支持流操作,支持延時操作, 支持多個主設備同時訪問。帶Avalon接口的內核為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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 文水县| 大石桥市| 弥勒县| 宜兰县| 观塘区| 安图县| 水富县| 吉安县| 子长县| 古田县| 大田县| 沈丘县| 安龙县| 谢通门县| 邵武市| 武鸣县| 远安县| 盱眙县| 侯马市| 长阳| 新竹县| 麻江县| 宝应县| 盱眙县| 侯马市| 巴青县| 吉安市| 和静县| 宁阳县| 耿马| 兴化市| 白水县| 绥中县| 万山特区| 方山县| 光山县| 施秉县| 皋兰县| 巴楚县| 涞源县| 临江市|