全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1714
推到 Plurk!
推到 Facebook!

uart 16550 FIFO問題

答題得分者是:
addn
高階會員


發表:64
回覆:221
積分:202
註冊:2005-03-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-08-28 21:34:31 IP:218.171.xxx.xxx 未訂閱

各位 大大

請問有人知道uart 16550 的FIFO的電路結構嗎

謝謝


版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-09-01 00:09:24 IP:219.70.xxx.xxx 未訂閱
你是想要用什麼模擬它嗎? 它是早期電腦在用的 chip, recieve buffer(好像有16 byte) 可規劃(可定義接收幾個後產生中斷), 是 FIFO 型式. 若要用軟體實現應該不難, 最先進入 recieve buffer 你去做 read 時會最先讀到.
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
addn
高階會員


發表:64
回覆:221
積分:202
註冊:2005-03-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-09-01 20:17:27 IP:218.171.xxx.xxx 未訂閱


===================引 用 文 章===================
你是想要用什麼模擬它嗎? 它是早期電腦在用的 chip, recieve buffer(好像有16 byte) 可規劃(可定義接收幾個後產生中斷), 是 FIFO 型式. 若要用軟體實現應該不難, 最先進入 recieve buffer 你去做 read 時會最先讀到.

正 大大 您好

因為以前有用vhdl做一8250的功能

現在想加上FIFO ,變成16550的功能

所以才會想了解16550 FIFO的電路結構


版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-09-01 23:03:24 IP:219.70.xxx.xxx 未訂閱

要做到類似不難.....加入幾個 buffer(Receiver/Transmitter) , 幾個 flag bit(buffer status), 提升傳輸速率就 OK 了

要做到完全match, 建議你去找一下 16550 的 datasheet 研究一下它所有的 pin 與 function.

而 buffer 以 recieve 端來說, 空時 --> empty flag, 滿了 --> full flag, 超過buffer大小已破壞接收資料 --> over flag

read 時假設 buf0=0x01,buf1=0x02,buf2=0x03, 讀完一筆 data --> buf0=0x02, buf1=0x03, buf2=0x00 or 0xff(看你怎麼定義 buffer 空時內含值)

FYI

------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
addn
高階會員


發表:64
回覆:221
積分:202
註冊:2005-03-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-09-02 00:50:28 IP:218.171.xxx.xxx 未訂閱

正 大大 您好

謝謝您的回覆

系統時間:2024-05-21 2:16:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!