我們知道,當我們的微處理器(微控制器、fpga、dsp等)要和電腦進行通訊的時候一般會採用序列通訊方式,而最常用的序列通訊協議的物理層介面是rs232序列口,這時候為滿足rs232序列通訊協議,常常需要乙個電平轉換晶元,比如max232\233等。但是這些年隨著計算機技術的發展,rs232序列介面在好多電腦上已經找不到了,特別是膝上型電腦(我的本本上就已經找不到這種介面了),取代它的往往是更常見的usb口。但是這種非同步序列通訊協議簡單啊,往往只要規定波特率,然後按它的資料格式收發就可以了,不像usb協議,據說需要厚厚的幾百頁書闡述,這種工作量可不是一般的開發人員能夠勝任的。所以人們就開發出一種折中的方式--用usb介面來實現非同步序列通訊協議,個人認為這個就是所謂的usb uart。好了,閒話不多說,讓我們就以nexys3這塊板子為例來看看是怎麼實現這兩種協議的轉換的。
老規矩,先上硬體原理圖。這裡要說明一下,我們在digilent官網上能弄到兩份pdf,乙份叫nexys3_sch,這個是詳細的硬體原理圖,還有乙個參考手冊,叫nexys3_rm,這裡面的連線圖往往是簡化了的,但是也很重要,特別是對於一些比較複雜的器件的使用,會有一些文字上的描述。我們今天就用這份pdf做參考。
找到標題usb-uart bridge,pdf上的描述很簡單,短短的幾行文字,再加上下面的這個圖:
連線介面跟fpga的是一塊ft232,而文字描述第一句話的意思就是這塊ft232允許pc與開發板之間通過標準的windows com埠進行通訊。原來如此,就是這麼一塊小小的晶元幫助我們完成了序列通訊協議到usb協議之間的轉換。這塊晶元具體的工作原理我們暫且不去深究,對於我們這個開發來說,我們只需要搞清楚怎麼使用它。那到底接下來怎麼繼續呢?似乎不太有頭緒,那就先連線上電腦再說吧!將j13跟電腦的usb口連線上去,會發現這時電腦正在安裝乙個驅動,就像一般的u盤這些usb裝置第一次連線電腦一樣。既然如此,那我們不妨開啟電腦的裝置管理器,看看它到底裝了些什麼。然後我們會發現,多了的東西並不在usb裝置裡,反而在埠處多了乙個com3,如下圖所示:
這一下我們不妨大膽**了--原來ft232是在我們的計算機上虛擬出了乙個com,然後利用usb埠完成資料的傳輸!後來經過查詢ft232的相關資料驗證了我這個想法,真相大白後一切就變的簡單多了,原來我們雖然用的是usb口,但我們根本不用去理會usb協議,我們最後操作的還是非同步序列傳輸協議!再看看ft232連線到fpga上的埠,就兩個--txd\rxd,看來我們只需要在fpga裡實現一般串列埠的收發機就能完成與pc之間的通訊了!
nexys3練手 USB UART初探秘
因為要用到串列埠方面的模組,對此一無所知,網上搜到乙個最初級的入門demo,照著做了一下,對串列埠有了初步的認識,下面是實驗內容。首先我們要知道,nexys3上面是 用usb介面來實現非同步序列通訊協議,我們來看一下參考手冊中的介紹 連線介面跟fpga的是一塊ft232,而文字描述第一句話的意思就是...
移植sqlite3到開發板
在開始之前,我們需要確認有 選擇穩定版本的原始碼 2 將原始碼包複製到主機工作目錄下 講原始碼包進行解壓,進入解壓後的目錄 3 配置編譯選項 cc arm linux gcc configure host arm linux prefix home ocean sqlite3 其中,4 編譯安裝 1...
移植SQLite3到ARM開發板
1 首先安裝 readline 6.2.tar.gz 庫到檔案件系統 這是為支援sqlite 控制台介面程式時的上下鍵選擇歷史記錄的功能。解壓之後 進入目錄 readline 6.2 configure host arm none linux gnueabi prefix root targetfs...