嵌入式系統常需透過數位類比轉換器(DAC)產生類比電壓與波形。這些轉換器有時是嵌入式處理器的外部元件,有時則會整合在處理器內。無論是哪種形式,處理器都必須在適當的時間點把需要的輸出值寫入轉換器。這通常要靠計時器來中斷處理器的正常作業程序,再將所需的值寫入轉換器。如果轉換器必須產生週期波形,處理器就要從資料列表(Table)讀取下一個數值,並且遞增資料列表的指標,然後檢查資料列表的邊界以決定是否應重置該指標。
在將週期性數值寫入轉換器的過程裡,處理器必須執行許多額外的程序才能確保輸出波形符合要求。這些額外的程序所帶來的負荷須視資料表的長度、輸出波形的頻率和處理器的操作速率而定。舉例來說,若要在處理器操作頻率在1MHz的情形下,利用每個週期32筆資料點來產生1kHz的正弦波,處理器每秒就要執行3萬2000次中斷服務,這表示兩次中斷之間只有1,000,000 / 32,000 = 31.25個處理器指令週期可供使用。就算每次中斷服務只需15個時脈週期來切換環境和執行服務內容,也會佔用將近五成的處理器時間。
如果應用需要第二個類比輸出波形,處理器的負擔將變得更大,甚至無法在規定的中斷服務時間內更新兩個轉換器的資料。在這種情況下,透過特定的微控制器(如MSP430F15x/16x)便可以解決這個問題,原因在於這些元件內含2個數位類比轉換器和1個DMA控制器。DMA控制器能將資料從一個位址搬移到另一位址,完全不需處理器介入。在本文的例子裡,DMA控制器會在規定時間內將資料列表的資料移動到兩個數位類比轉換器。(圖一)就是資料移動過程的方塊圖。
...
...
使用者別 |
新聞閱讀限制 |
文章閱讀限制 |
出版品優惠 |
一般訪客 |
10則/每30天 |
5/則/每30天 |
付費下載 |
VIP會員 |
無限制 |
20則/每30天 |
付費下載 |