狀態(tài)機(jī)在A/D采樣控制中的應(yīng)用
(作者未知) 2012/1/15
摘要: 給出了利用有限狀態(tài)機(jī)控制A/D采樣的設(shè)計(jì)方法, 并通過狀態(tài)機(jī)和單片機(jī)來對(duì)A/D采樣速度進(jìn)行了比較和具體分析。最后給出了用狀態(tài)機(jī)對(duì)ADC0809進(jìn)行采樣控制的設(shè)計(jì)方法的軟件程序代碼。
關(guān)鍵詞: 狀態(tài)機(jī); A/D采樣控制; ADC0809
0 引言
對(duì)A/D器件進(jìn)行采樣控制的傳統(tǒng)方法多數(shù)是用CPU或單片機(jī)完成的。這些方法編程簡單, 控制靈活, 但缺點(diǎn)是控制周期長, 速度慢。特別是當(dāng)A/D本身的采樣速度比較快時(shí), CPU較慢的速
度極大地限制了A/D高速性能的利用。
1 狀態(tài)機(jī)和單片機(jī)對(duì)A/D采樣的比較
這里以速度并不算高的AD574的采樣控制為例來進(jìn)行說明。AD574的采樣周期平均為20 μs,即從啟動(dòng)AD574進(jìn)行采樣到AD574完成采樣并將模擬信號(hào)轉(zhuǎn)換成12位數(shù)字信號(hào)的時(shí)間需要約20μs, 或者說, 其采樣速率為每秒5萬次。通常對(duì)一個(gè)模擬信號(hào)至少進(jìn)行一個(gè)周期的連續(xù)采樣, 假設(shè)為50個(gè)采樣點(diǎn), AD574需時(shí)為(20 μs×50) 1ms。若以51單片機(jī)為例, 控制A/D進(jìn)行一個(gè)采樣周期必須完成的操作是:
① 初始化AD574;
② 啟動(dòng)采樣;
③ 等待約20 μs;
④ 發(fā)出讀數(shù)命令;
⑤ 分兩次將12位轉(zhuǎn)換好的數(shù)從AD574讀進(jìn)單片機(jī)中;
⑥ 再分兩次將此數(shù)存入外部RAM中;
⑦ 外部RAM地址加1, 此后再進(jìn)行第二次采樣周期的控制。
這樣, 整個(gè)控制周期至少需要30條指令, 每條指令平均為2個(gè)機(jī)器周期, 如果單片機(jī)時(shí)鐘的頻率為12 MHz, 則一個(gè)機(jī)器周期為1 μs, 每條指令耗時(shí)約2 μs, 30條指令的執(zhí)行周期為60 μs, 加上等待AD574采樣周期的20 μs, 共80 μs。這樣,50個(gè)采樣周期需時(shí)約4 ms。顯然, 用單片機(jī)即使控制AD574這種并不算高速的器件, 其采樣尚且遠(yuǎn)遠(yuǎn)不能發(fā)揮其高速采樣的特性。至于更高速的A/D器件, 如用于視頻信號(hào)采樣的TLC5540 (采樣速率是40 MHz, 采樣周期0.025 μs, 遠(yuǎn)遠(yuǎn)小于一條單片機(jī)指令的指令周期! ), 則將更加無能為力。但如果使用狀態(tài)機(jī)來控制A/D采樣, 包括將采得的數(shù)據(jù)存入RAM (FPGA內(nèi)部RAM存儲(chǔ)速率可達(dá)10 ns), 則時(shí)間不到單片機(jī)60 μs采樣周期的千分之一。由此可見, 利用狀態(tài)機(jī)對(duì)A/D進(jìn)行采樣控制是一種行之有效的方法。
.......
附件下載:點(diǎn)擊下載查閱全文
|