Skip to Main Content
建立嵌入式系統--傑出軟體的設計模式
book

建立嵌入式系統--傑出軟體的設計模式

by Elecia White
October 2012
Intermediate to advanced content levelIntermediate to advanced
328 pages
7h 19m
Chinese
GoTop Information, Inc.
Content preview from 建立嵌入式系統--傑出軟體的設計模式
182
|
第六章
當然,如果 FIFO 深度有 16 位元組,只需要以 7.8 KHz125 kHz/16)的速度觸發中
斷,也可以只在 FIFO 滿了的時候觸發,但如果延屬高於 128 us1/7.8 kHz)會產生通
訊落後的情況,在半滿的時候中斷會較有餘裕,大約是以 15.6 kHz 的速度觸發中斷,
每次中斷只需要將位元組從接收 FIFO 移到 RAM 的其他位置,以及將傳送位元組移進
FIFO
接著是 DAM,如果目標是達到最高吞吐量,將 RAM 分為兩塊,較小的部分放置區域變
數,較大的空間作為乒乓緩衝區。以 32 KB RAM 為例,留下 2 KB 作為變數使用,
每個乒乓緩衝區 15 KB,代表每秒會有八次中斷,有很多時間能執行其他的作業。
6-2 比較了不同方式的差異,包含中斷的負擔(假設每個中斷有 10 循環的額外負載,
不算太大),DMA 緩衝也以不算太大的 521 byte 為基準。要注意採用 bit-bang 方式實作
時,會需要比 DMA 作法快 8000 倍的處理器,這還只是為了額外的負載! bit-bang 驅動
程式比 DMA 中斷複雜得多,DMA 只需要切換指標,以及在緩衝區滿了的時候設定處
理旗標。
6-2 DMA 快多少?
緩衝方式
Bit-Bang
介面
硬體
週邊介面
16 位元組 FIFO
(一半中斷 )
使用 512 位元組
緩衝的 DMA
中斷環境切換每秒需要的時脈數
10 循環的額外負載)
20 MHz 1.25 MHz 156 kHz 2.44 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

HBASE技術手冊

HBASE技術手冊

Lars George
ANGULARJS建置與執行

ANGULARJS建置與執行

Shyam Seshadri, Brad Green
高效能PYTHON程式設計

高效能PYTHON程式設計

Micha Gorelick, Ian Ozsvald

Publisher Resources

ISBN: 9789862765784