亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? chapter10.txt

?? 關于 nios的uart 使用 說明 好資料 大家看了 就知道
?? TXT
字號:
本文是nios2文檔的第十章的翻譯稿,希望能對各位同仁有所幫助。
轉載時請標明出處。
譯者:姜黎
南京氣象大學2000級
QQ:44425312




UART的寄存器:
   UART 通過Avalon總線和一組寄存器文件打交道。UART有6個16位的寄存器。
它們是control,status,rxdata,txdata,divisor,endofpacket。

UART的中斷:
   當串口收到一個數據或者為發送一個字節準備好時,它就會產生一個高有效
的中斷信號。

UART的DMA操作:
   UART支持流模式傳輸,因此它可以用來和存儲器進行DMA操作。

UART的接口:
   由于大多數FPGA芯片不支持RS-232的數據接口,因此它需要在片外加一個電平
轉換芯片來完成電平轉換。邏輯'0'代表數據為1,邏輯'1'代表數據為0。

發送邏輯單元:
   UART內部的發送邏輯由發送保持寄存器(holding register)和發送移位寄存器(shifting register)
組成。當主設備向發送寄存器(txdata)寫數據時,如果移位寄存器發送完上一個數據后,
就會把該數據載入。數據就會從最低位開始通過TXD引腳從位移寄存器一位一位移出。
   由于有了保持寄存器和位移寄存器的雙緩沖,串口在把數據移出的同時又可以向保持寄存器
寫入新的數據。主端口還可以實時監控發送status寄存器,可以讀取發送準備好位(trdy),
發送位移寄存器空位(tmt),發送溢出位(toe)。

接收邏輯單元:
   UART內部的接收邏輯由接收保持寄存器(holding register)和接收移位寄存器(shifting register)
組成。當移位寄存器接收完一個完整的數據后,主設備就可以讀取接收保持寄存器(txdata)的數據。
   由于有了保持寄存器和位移寄存器的雙緩沖,串口在把數據移到保持寄存器的同時,又可以向接收
位移寄存器移入新的數據了。主端口還可以實時監控接收status寄存器,可以讀取接收準備好位(rrdy),
接收溢出位(roe),停止偵測位(brk),奇偶校驗位(pe),幀錯誤位(fe)。

波特率的產生:
   波特率可以通過以下兩種方式產生:
   1。在系統生成時設定固定的值。
   2。設置16位的分配寄存器(divisor register)。
   當波特率在系統生成時被設成固定值時,系統生成后是不能被改變的。相反,把波特率設成可變的話,
在系統生成后,可以通過軟件設定分配寄存器的值來改變波特率。
   
   下面是波特率和分配因子的計算方法:
	divisor = int( (clock frequency)/(baud rate) + 0.5 )
	baud rate = (clock frequency)/(divisor + 1)

數據位數的設定:
   數據的數據位、停止位、奇偶校驗位在系統生成時是可以配置的。一旦系統生成后,這些參數是不能被
改變的。

數據流(DMA)的控制方式:
   UART可以支持流模式的Avalon傳送方式。這樣可以使得uart準備好接受下一個字符時主端口才會向它發送
數據,或者uart接收到數據時主端口才去讀它接收的數據。此時可以設置SOPC Builder來選擇給uart構造
end of packet寄存器。
   在加入end of packet 寄存器后,uar就會在基地址+5的位置多了一個寄存器;在status寄存器中多一位
eop位;在control寄存器中多一位ieop位;在Avalon總線上多一個endofpacket信號用來和支持流模式數據
傳輸的主端口進行接口。如果沒有設定該寄存器,則不會加入上述資源。
   End-of-packet(EOP)偵測可以決定UART和支持流模式傳輸的Avalon主端口在什么時候中止流模式數據傳輸。
EOP偵測可以和DMA控制器中一起使用,例如,可以實現將UART中接收到的數據自動寫入存儲器,直到接收到一個
特定的字符。這個中止字符的就是被寫入到endofpacket寄存器的值。


軟件編程模式:
   
HAL 系統庫支持
   Altera公司為Nios II系統提供了設備驅動,該驅動將HAL層的字符型設備驅動集成到了HAL系統庫中。
HAL用戶可以通過熟悉的HAL API和ANSI C標準庫,而不是訪問UART的寄存器組。用戶可以使用ioctl()請求
來控制和uart硬件相關的操作。
(注:如果在程序中使用HAL設備驅動來訪問UART的話,此時直接對設備的寄存器進行訪問會干擾設備驅動
的正常運行。)
   對于Nios II CPU用戶來說,HAL系統庫的API提供了完整的對UART的訪問函數。Nios II的程序把uart當
成一個字符型的設備,發送和接收數據都使用ANSI C標準庫函數。
 
   下面的代碼示范了一個最簡單的應用,用printf()打印一段消息到stdout。在這個例子中HAL系統庫已經
配置了一個串口作為stdout。
----------------------------------------------------------------------------------------------
	#include <stdio.h>
	int main ()
	{
	   printf("Hello world.\n");
	   return 0;
	}
----------------------------------------------------------------------------------------------

    下面的代碼示范了如何通過C標準庫從uart讀字符和向uart發送消息。在這個例子中程序把該設備當成
和HAL文件系統中任何其他的節點一樣來處理。
----------------------------------------------------------------------------------------------
/* A simple program that recognizes the characters 't' and 'v' */
#include <stdio.h>
#include <string.h>
int main ()
{
	char* msg = "Detected the character 't'.\n";
	FILE* fp;
	char prompt = 0;
	fp = fopen ("/dev/uart1", "r+"); //Open file for reading and writing
	if (fp)
	{
	    while (prompt != 'v')
	    { // Loop until we receive a 'v'.
	         prompt = getc(fp); // Get a character from the UART.
	         if (prompt == 't')
	         { // Print a message if character is 't'.
		      fwrite (msg, strlen (msg), 1, fp);
		 }
	    }
	    fprintf(fp, "Closing the UART file.\n");
	    fclose (fp);
	}
	return 0;
}
---------------------------------------------------------------------------------------------

驅動實現的兩種選擇:Fast vs. Small
    根據不同系統的需要,uart驅動提供了兩種形式:快速模式和小模式。快速模式是默認模式。這兩種
模式都支持C標準庫函數和HAL API。
    快速模式是一種中斷實現方式,這種方式可以使得CPU在UART未準備好收發數據時做其他的事情。
    小模式是一種查詢方式,這種方式必須一直在等待uart準備好以后才能收發數據。使能小模式可以
通過兩種方式:1。設置HAL系統庫工程屬性,開啟small footprintf(這種方法也會影響其他設備驅動);
2。定義預處理宏 -DALTERA_AVALON_UART_SMALL ,使用這個選項不會影響到其他設備的驅動。

ioctl()操作:
    uart驅動支持ioctl()函數,該函數允許程序基于HAL層的設備相關操作請求。
------------------------------------------------------------------------------------------
	請求				含義
      TIOCEXCL       鎖定設備避免被再次訪問。對該設備用open()函數再次訪問會失敗,直到這個
                     設備的文件描述符被關閉,或者用TIOCNXCL ioctl請求解鎖。在使用該請求時
                     "arg"參數可忽略。
      TIOCNXCL       對前一次的訪問解鎖。在使用該請求時"arg"參數可忽略。

以下請求只對快速模式有效:
      TIOCMGET       向termios結構填入內容,返回當前的設備配置情況。指向這個結構的指針
                     是作為ioctl的"opt"參數。
      TIOCMSET       根據輸入termios結構的值來配置設備。指向這個結構的指針是作為ioctl的
                     "arg"參數。
-----------------------------------------------------------------------------------------
termios結構在Newlib C標準庫里被定義。在<Nios II kit path>/components/altera_hal/HAL
/inc/sys/termios.h文件中有它的定義。

軟件開發文件: 
    UART的核還配有以下軟件開發文件。這些文件定義了底層硬件的接口,并且提供了HAL驅動。
應用程序開發者不要去修改這些文件。

altera_avalon_uart_regs.h
    該文件定義了寄存器映射,提供了符號名稱來訪問底層硬件。這些符號名稱只是被設備驅動函數所
使用。
altera_avalon_uart.h,altera_avalon_uart.c
    該文件實現了uart HAL系統庫的設備驅動。

    另外,UART還支持第一代Nios處理器遺留的SDK子程序。

UART的中斷行為:
    UART會輸出一個IRQ信號到Avalon總線接口,它可以和任何主設備接口,例如,Nios II處理器。
主外設必須讀status寄存器來決定是哪種類型中斷。
    每一種中斷會在status和interrupt-enable寄存器中有相應的位。當任意一種中斷條件滿足時,
相應的寄存器位就會被置位,直到完全響應中斷才會被清除。中斷信號輸出信號在任何status寄存器
的某一位被置位且那一位是被中斷使能的。而主外設通過清除status寄存器來相應這個IRQ。
    在系統復位時,所有的中斷使能寄存器的位都被置為0,因此只有當主外設對中斷使能寄存器的
一位或多位置1時,才能產生IRQ信號。

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天免费综合色| 26uuu国产在线精品一区二区| 中文字幕第一区二区| 美脚の诱脚舐め脚责91| 欧美吻胸吃奶大尺度电影| 中文字幕一区二区三区四区不卡 | 亚洲一区二区精品视频| 成人av在线资源网站| 国产人成亚洲第一网站在线播放 | 亚洲va欧美va人人爽| 在线亚洲+欧美+日本专区| 亚洲精品视频在线| 一本久久a久久免费精品不卡| 综合中文字幕亚洲| 91蝌蚪porny成人天涯| 国产精品不卡在线观看| aaa亚洲精品| 亚洲欧美日韩人成在线播放| 色猫猫国产区一区二在线视频| 中文字幕一区二区三区在线不卡| 99精品国产91久久久久久 | 精品人伦一区二区色婷婷| 麻豆精品国产传媒mv男同| 日韩免费高清av| 国内国产精品久久| 综合久久一区二区三区| 成人精品视频一区二区三区| 国产精品免费久久| 久久久99精品免费观看不卡| 欧美影院一区二区三区| 不卡一区二区三区四区| 久久精品国产免费| 亚洲综合男人的天堂| 国产欧美精品一区aⅴ影院| 欧美日韩午夜精品| 色综合天天在线| 国产99久久久国产精品潘金网站| 综合久久国产九一剧情麻豆| 欧美不卡一区二区| 国内成人免费视频| 国产欧美一区二区在线观看| 不卡视频在线观看| 一区二区三区四区国产精品| 欧美日韩一区二区三区视频| 美脚の诱脚舐め脚责91 | 91精品在线麻豆| 美女视频网站黄色亚洲| 久久久国产精品不卡| 99re8在线精品视频免费播放| 亚洲国产婷婷综合在线精品| 日韩欧美一区二区免费| 高清不卡一二三区| 久久亚洲精精品中文字幕早川悠里 | 国模一区二区三区白浆| 国产精品久久久久久久久图文区| 在线观看成人免费视频| 免费精品99久久国产综合精品| 久久久久久久综合色一本| 99久久精品久久久久久清纯| 五月综合激情婷婷六月色窝| 国产午夜亚洲精品理论片色戒| 91美女在线看| 蜜桃精品视频在线观看| 中文字幕一区二区三区在线观看| 3atv一区二区三区| 成人手机在线视频| 午夜激情综合网| 国产欧美日韩在线| 欧美狂野另类xxxxoooo| 国产suv精品一区二区6| 性做久久久久久免费观看欧美| 久久精品人人做人人综合 | 精品国产sm最大网站免费看| av在线综合网| 免费成人你懂的| 一区精品在线播放| 日韩欧美三级在线| 色婷婷综合视频在线观看| 久久99九九99精品| 亚洲一区在线观看免费观看电影高清| 26uuu精品一区二区| 欧美亚洲一区三区| 成人自拍视频在线| 天堂蜜桃一区二区三区| 国产一区二区伦理| 制服丝袜中文字幕一区| 99精品视频在线免费观看| 麻豆精品一区二区综合av| 亚洲精选视频在线| 久久精品亚洲麻豆av一区二区| 欧美影院一区二区| 不卡一二三区首页| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲成人在线观看视频| 亚洲欧洲精品成人久久奇米网| 日韩精品一区二区三区在线| 欧美四级电影网| 欧美国产精品一区| 国产精品亚洲一区二区三区在线| 图片区小说区国产精品视频| 亚洲欧洲另类国产综合| 国产亚洲精品中文字幕| 日韩免费成人网| 91精品国产乱码久久蜜臀| 色综合激情五月| 成人黄色免费短视频| 国产一区二区三区免费观看 | 中文字幕一区二区三区四区不卡| 2023国产精品自拍| 欧美一区二区三区不卡| 欧美群妇大交群中文字幕| 青青青爽久久午夜综合久久午夜| 一区二区三区欧美日| 久久精品人人做人人爽人人| 欧美xxxx老人做受| 欧美日韩高清一区| 欧美视频一区二区三区四区 | 日韩欧美你懂的| 7777精品伊人久久久大香线蕉经典版下载 | 日韩中文字幕麻豆| 一区二区三区四区蜜桃 | 精品sm捆绑视频| 日韩欧美精品在线| 日韩一区二区影院| 777午夜精品免费视频| 在线成人免费视频| 国产a视频精品免费观看| 精品一二三四区| 久久精品国产亚洲aⅴ| 午夜精品国产更新| 天天色综合天天| 日韩精品亚洲一区二区三区免费| 亚洲国产成人tv| 亚洲午夜激情av| 午夜视频久久久久久| 亚洲mv大片欧洲mv大片精品| 亚洲午夜精品17c| 日韩在线一区二区三区| 天天色综合成人网| 蜜臀av性久久久久av蜜臀妖精| 91精品国产综合久久久久久久 | 国产女人18水真多18精品一级做| 久久久久综合网| 久久精品人人做人人综合| 欧美激情自拍偷拍| 国产精品久线在线观看| 中文字幕精品—区二区四季| 国产精品天美传媒沈樵| 国产精品久久久久久久久搜平片| 中文字幕av一区二区三区| 国产精品成人一区二区三区夜夜夜| 亚洲视频在线观看三级| 亚洲免费观看高清完整版在线观看熊| 亚洲少妇30p| 一区二区三区精品| 亚洲国产成人精品视频| 免费人成精品欧美精品| 韩国在线一区二区| 成人午夜视频免费看| 99re热视频精品| 欧美日韩不卡一区| 欧美成人精品二区三区99精品| 久久久久9999亚洲精品| 亚洲欧美影音先锋| 亚洲第一狼人社区| 男男成人高潮片免费网站| 美国精品在线观看| 粉嫩欧美一区二区三区高清影视| 99久久久国产精品免费蜜臀| 欧美亚洲禁片免费| 日韩一区二区三区三四区视频在线观看 | 99久久综合国产精品| 在线一区二区观看| 欧美一卡2卡三卡4卡5免费| 久久久久88色偷偷免费| 亚洲精品高清视频在线观看| 日韩电影免费一区| 国产福利一区在线| 色婷婷av一区二区三区之一色屋| 欧美高清视频一二三区| 久久久亚洲午夜电影| 亚洲天堂网中文字| 免费观看久久久4p| 粉嫩av一区二区三区| 欧美性受xxxx黑人xyx性爽| 精品国产髙清在线看国产毛片| 国产精品免费视频网站| 亚洲成av人片一区二区三区| 久久99精品国产麻豆婷婷| 欧洲视频一区二区| 在线不卡a资源高清| 国产拍欧美日韩视频二区| 亚洲美女视频一区| 看电影不卡的网站| 91网址在线看| 欧美精品一区二区三区四区| 日韩在线一二三区| 国产麻豆午夜三级精品| 欧美亚洲高清一区| 日本一区二区三区久久久久久久久不|