大部份電子產品的內部,都是由數位和類比的線路所組成。數位處理器提供設計者不同產品的想像空間,經由複雜軟體的精密演算法則,即使最低微的電子裝置其效能表現也能讓人非常讚賞;另一方面,這是一個類比的世界,我們透過類比的聲音、光線和電子設備的互動,更能刺激消費者的感官。
微控制器產品需求
正因為消費者對電子產品的功能需求愈來愈高,廠商必須在微控制器(Micro Controller Unit)上建置入更多功能。然而,不同領域供應廠商所提供的多種不同功能的晶片(Chip),極有可能發生無法正常展現各種功能,或是彼此之間運作錯誤(bug)的情形。
半導體設計廠商此時便面臨一項挑戰-必須提供研發人員更聰明且更具彈性的解決方案,如聰明到使用更小的晶片來提供各種類比和數位功能的應用,以及有彈性到可讓單一設計適用於不同的應用裝置上。
所以焦點放在數位和邏輯的整合上的單晶片系統(System-On-a-Chip,SoC),便解決了廠商必須購買多顆晶片與效能展現等問題,如:非同步傳輸(UART)、脈波寬度調變(PWM)與計數器/計時器(Counter/Timer)等,但是這只能解決一半的問題。
PSoC產生
若是晶片在研發過程中需要對功能或是應用程式重新設計或進行修正,系統研發人員還是必須從頭重新進行研發動作,不但會對成本與時程上形成很大的負擔,更顯示在設計彈性上的不足。
在這一方面,晶片若能提供數位和類比的介面都可被程式化的功能,研發人員將可以輕鬆修改晶片的功能,即使需要重新定義或是修正設計方向,都不會形成研發人員的負擔,且在開發彈性上有更加充裕的空間,微控制器的應用領域方向便更加寬廣。即能為研發人員解決在彈性上的問題,而這個新的結構便被稱為可程式化的系統整合(Programmable System On a Chip , PSoC)。
典型方案
(圖一)顯示系統包含數位和類比兩個主要功能應用於一般的微處理器上的狀況。類比的訊號需要事先被放大和濾波後,微處理器才能經由類比轉換數位IC作取樣。轉換可處理的訊號時,在類比輸出方面,CPU透過DAC把數位訊號轉成類比訊號輸出至濾波器,之後可能驅動一個低阻抗的喇叭或是別的裝置。
在數位方面,典型的CPU有固定的標準、固定的功能和介面,可能有一個或多個UART、SPI介面、PWM、Counter/Timer等,典型的微處理器提供一般的I/O接腳,可以允許直接連結至數位信號,例如:LED、按鈕等。
不過這裡有幾個限制,第一、微處理器功能是固定的,如果想要加入新的功能,可能需要尋找其他合適的微處理器。第二、一般的微處理器沒有內建類比的元件,需要由外面的元件支援,例如:放大器、電阻、電容、ADC或DAC等,都需要放入PCB裡,任何一個改變都可能要重新Layout新的PCB,但這種缺乏彈性的設計會增加設計人員的風險。
PSoC的解決方案
您能想像當一個裝置沒有固定和限制的週邊介面,替代的是數位和類比的元件陣列,一但設計者想要連結這些元件陣列,創造出數位和類比的週邊時,其結果是如何嗎?結果是裝置能夠提供更具彈性的功能建置,提供如FPGA(Field Program gate Array)的高度彈性整合功能,但在結構上更接近微處理器,且更適用於多種不同的應用領域,當系統在執行時,可動態改變系統的功能。
(圖二)簡單的方塊圖為PSoC的結構,顯示PSoC被分為兩個區塊。左邊是在一般的微處理器上的典型元件,主要PSoC的核心是8位元的哈佛架構的CPU,程式儲存在內部的快閃記憶體,而變數常駐在內部的靜態記憶體。值得注意的是,內部有一個振盪器提供時脈信號給所有裝置,故不需要外部的振盪器,可提供內建的溫度感測器一個精準的參考電壓,並透過單顆晶片進行處理。
運用使用者模組
右邊的虛線裡面是PSoC結構的元件,能夠使它變成獨一無二的裝置,由多個數位和類比PSoC 區塊和可程式內部連接陣列(Programmable Interconnect Array,PIA)組成,經由PIA數位和類比區塊能夠創造出模組(Module),稱為使用者模組(User Module)。
類比模組有類比轉數位轉換器(ADC)、數位轉類比轉換器(DAC)、濾波器(Filters)、放大器(Amplifiers)等,數位模組則有非同步傳輸(UART)、脈波寬度調變(PWM)和串列介面(SPI),以上模組均可單獨或合併使用User Modules,PIA也能連結User Modules、輸出到接腳,經由通用輸入/輸出接腳(GPIO)。
PSoC 數位區塊
每個PSoC裡面都有8個可規劃的數位區塊,每個數位區塊都由3個可規劃的暫存器所組成,全部資源都可以透過微處理器的內部匯流排存取所控制。(圖三)是一個數位區塊被規劃成一個事件計數器(Event Counter),標示DR0是被規劃成下數計數器,它可能預先被設定初始值,由標示DR1的暫存器,PSoC區塊能夠被規劃產生一個中斷給CPU,當計時器DR0達到計數值(0)或是等於DR2抓取值,計時器時脈可以連接到裝置裡許多不同的可程式化全域時脈來源。
PSoC的區塊可以並排連結,增加計數器的解析,可以計數至16、24、32位元。為了能更理解PSoC的彈性,(圖四)顯示另一個例子,但這次計數器被規劃成UART傳輸器的一部份,DR2沒被使用,DR1被當作傳輸的緩衝器,而DR0被當作移位暫存器使用,裝置裏的時脈來源可以被程式化成為傳輸器的鮑率。
多功UART設計
如果要設計一個全多功的UART,只需要2個數位區塊,一個做為傳輸器,另一個做為接收器;其中可以發現一個特性,如前面所提過的動態規劃PSoC的結構,當CPU在執行時,半雙功的UART是一個好例子。
傳輸和接收不會在同一時間發生,因此,韌體可以規劃PSoC的區塊成為傳輸器,當要傳送資料時,也可以規劃成接收器,當它要等待回覆時,可以從中知道,僅要一個PSoC數位區塊就能做出半雙功的UART,這種彈性可以讓設計將更多的週邊介面建置在單一晶片裡。由於具有類似的特色,PSoC數位區塊更可以被規劃成PWM、SPI、CRC產生器/檢測器,或是隨機亂碼產生器。
PSoC類比區塊
每一個PSoC裝置都有12個可規劃的類比區塊,可以分為兩個群組、4個連續性時間(Continuous time,CT)和8個可切換電容(Switched Capacitor,SC)區塊。(圖五)顯示基本的CT區塊結構,這區塊的核心是一個放大器(OP-Amp),它可選擇性被規劃成為比較器。
OP的輸入可以連接到數個來源,包括GPIO 輸入接腳,或來自裝置裡其他的類比區塊,也可以當作Vref + 和Vref -的輸入連接,也有兩個串列的可程式化電阻矩陣,每一個都可以被程式化、選擇16種電阻值,並可應用在反相放大器和正相放大器,當電阻與OP放大器進行適當的輸入連接時,更可以用程式設定它們的放大倍率或衰減值。
《圖六 PSoC區塊被規劃成1/16~15倍反相放大器》 |
|
CT規劃
(圖六)顯示,一個CT的PSoC區塊被規劃成一個反相放大器,輸入可能來自另一個區塊,放大器的放大倍率可以被程式設定為1/16到15倍。(圖七)是另一個例子,由二個區塊串連,輸入來自接腳,放大的倍率範圍為1~16。
為了具備更複雜的類比功能,如濾波器或者是類比數位轉換器,PSoC裝置提供SC區塊。(圖八)為簡化的SC結構方塊示意圖,OP-Amp仍是SC區塊的核心, 4個電容值可以透過程式進行更改,橢圓形表示一個可被控制的選擇開關,每一個開關都有兩個輸入和一個輸出,並可由程式控制;當開關在第一個輸入位置時(稱為第一個相位輸入),資料會透過這個相位輸入將資料傳輸到O/P Bus;若是開關位置在第二個開關位置(第二個相位輸入)時,資料便會透過第二相位輸入傳輸到O/P Bus。有三種輸入路徑的可能,視程式規劃而定,大部份來自別的 PSoC區塊,也可從裝置的接腳直接輸入,最後O/P Bus 輸出也可由PIA 分散出去給別的區塊使用。
SC設計
(圖九)顯示,一個SC區塊被規劃成正相放大器,其放大倍率範圍可以從1/31到32,使用SC比CT區塊在設計放大器時有幾個好處:第一、SC的誤差值為0.5%,比CT的電阻誤差值2%精確許多,第二、更精確的放大倍數,因為SC可以選擇更多的Cf和Ci值,比CT的Rf和Ri,SC可大幅減少輸入的偏移電壓。
圖九可以看到透過一些簡易的改變就可以規劃成為DAC,如(圖十)可以規劃輸入開關連結到內部精準的參考電壓,在微處理器的韌體控制下,就可以作出5位元的DAC,因為Vout=Vref *(Cf/Ci),Ci具有32種可能電容值。
PSoC混合模式
在前面我們可以清楚看到數位和類比模組的例子,PSoC最讓人驚嘆的特性是在PSoC可以輕易連結數位和類比的User Modules,並經由PIA展現結構上的高度連結功能。(圖十一)顯示的是一個由一個SC,2個數位區塊結合而成的12 Bit ADC User Modules。
結 論
PSoC結構為研發人員帶來前所未有的設計層次。數位和類比的整合,提供業界最具有高度彈性微處理的系統整體解決方案。系統設計廠商可以安心的建置出符合需求的產品規格元件,就算變更設計規格,PSoC也能夠快速提供系統研發所需功能與空間,大幅降低研發風險與成本,縮短上市時程與提昇產品競爭力。(本文作者為Cypress應用工程師)