到目前為止,有三種技術(shù)對(duì)電子工程師設(shè)計(jì)電子產(chǎn)品的模式產(chǎn)生了重大而又深遠(yuǎn)的影響,它們是:可編程微控制器(MCU),可編程邏輯陣列和可編程模擬陣列。與采用多個(gè)分立元件及單一功能的模擬與數(shù)字集成電路組成的電子系統(tǒng)相比,采用可編程技術(shù)和包含可編程芯片在內(nèi)的電子系統(tǒng)將具有更簡(jiǎn)單的結(jié)構(gòu)、更強(qiáng)的性能和更低的成本。而采用可編程技術(shù)也使電子工程師的智慧和想象力得到了更大的發(fā)揮,設(shè)計(jì)出來(lái)的產(chǎn)品智能化程度更高。 MCU自問(wèn)世以來(lái)就受到電子開(kāi)發(fā)工程師的青睞。由于它的可編程能力和可程序控制性能使得MCU得到廣泛使用。然而,不同的用戶根據(jù)不同的項(xiàng)目要求希望MCU能包含比以前更多的周邊資源來(lái)進(jìn)一步降低系統(tǒng)成本。事實(shí)上,現(xiàn)今的MCU廠商大都能提供多種系列多個(gè)型號(hào)的MCU供用戶選擇。因?yàn)橹噶钕到y(tǒng)和硬件結(jié)構(gòu)的不兼容,設(shè)計(jì)工程師花在選型上的時(shí)間已經(jīng)占據(jù)整個(gè)開(kāi)發(fā)時(shí)間的相當(dāng)?shù)谋壤,F(xiàn)在MCU的發(fā)展趨勢(shì)是系統(tǒng)在片芯片(System on Chip,SoC),它是將微處理器核和所有的周邊設(shè)備包括TIMER、PWM、ADC、DAC、UART、SPI、I2C、CAN、E2PROM、USB等等全部集成在一個(gè)芯片里,力圖能滿足所有設(shè)計(jì)工程師的需要。 可編程邏輯陣列可以整合系統(tǒng)設(shè)計(jì)過(guò)程中大量的邏輯運(yùn)算功能,提高系統(tǒng)的可靠性。它已經(jīng)歷了門陣列(GAL)、可編程邏輯器件(PLD)、復(fù)雜可編程邏輯器件(CPLD)和現(xiàn)場(chǎng)可編程門陣列(FPGA)四個(gè)發(fā)展階段。由于它具有高速度,高集成,高性能,并且可用VHDL和Verilog程序編程,因而得到了越來(lái)越多的應(yīng)用。 可編程模擬陣列(FPAA)由多個(gè)可編程模擬模塊組成,可編程模擬模塊采用開(kāi)關(guān)電容、運(yùn)算放大器和多路開(kāi)關(guān)有機(jī)組合并通過(guò)時(shí)鐘信號(hào)的作用,可以實(shí)現(xiàn)模擬信號(hào)的放大、比較、多種有源濾波和AD轉(zhuǎn)換等諸多模擬功能。目前制造現(xiàn)場(chǎng)可編程模擬陣列的公司有Anadigm和萊迪思(Lattice)等。雖然由于價(jià)格的原因FPAA還沒(méi)有被廣泛使用,但FPAA包含多個(gè)可編程模擬模塊,可以集多種模擬功能于一體,省略了許多外圍的無(wú)源元件和PCB的面積,對(duì)模擬工程師仍然具有一定的吸引力。 賽普拉斯半導(dǎo)體基于微處理器的PSoC,不僅具有MCU的可編程能力,還包含了部分可編程邏輯運(yùn)算功能,同時(shí)也提供了可編程模擬陣列,集三種可編程能力與一體。其中的周邊數(shù)字功能(如TIMER、COUNTER、PWM、UART、SPI)由與可編程模擬陣列相對(duì)應(yīng)的可編程數(shù)字陣列提供。通過(guò)對(duì)寄存器的配置或控制,三者之間可以相互作用,協(xié)調(diào)工作,是真正的可編程系統(tǒng)級(jí)芯片。 PSoC的功能框圖 PSoC主要由PSoC核、數(shù)字陣列、模擬陣列和附加的系統(tǒng)資源所組成。其中PSoC的核就是稱之為M8C的8位微處理器,以及相應(yīng)的Flash存儲(chǔ)器、SRAM、SROM和兩個(gè)數(shù)字時(shí)鐘源。而數(shù)字陣列則包含至少一排(4個(gè))的數(shù)字模塊,模擬陣列則包含至少一列(3個(gè))的模擬模塊,附加的系統(tǒng)資源主要有數(shù)字時(shí)鐘、乘加器、抽樣濾波器、I2C、系統(tǒng)復(fù)位(包括POR和LVD)、開(kāi)關(guān)泵、內(nèi)部電壓參考和IO模擬輸入多路器。雖然PSoC 的核心是一個(gè)8 位微處理器,但因?yàn)閿?shù)字陣列中的數(shù)字模塊和模擬陣列中模擬模塊的通用性和可配置性,所以PSoC不僅可以處理數(shù)字信號(hào)而且可以處理模擬信號(hào),它又被稱作是一個(gè)具有嵌入式微控制器內(nèi)核的混合信號(hào)陣列。 在PSoC的數(shù)字陣列和模擬陣列中,一個(gè)模塊或幾個(gè)模塊可以被配置成一個(gè)用戶模塊,用戶模塊的主要任務(wù)就是向設(shè)計(jì)師提供幾組能夠由其進(jìn)行配置和互連的通用積木式部件,以便執(zhí)行多種功能。對(duì)于大多數(shù)設(shè)計(jì)師來(lái)說(shuō),復(fù)合可編程邏輯器件(CPLD)的“宏單元”是他們所熟悉的對(duì)用戶模塊最為貼近的類比。每個(gè)單元(同樣,每個(gè)用戶模塊)都是根據(jù)核心功能來(lái)構(gòu)筑的,當(dāng)對(duì)其進(jìn)行配置時(shí),就會(huì)產(chǎn)生定制功能或板載外圍元件的最終結(jié)果。例如,用一個(gè)數(shù)字模塊可以配置一個(gè)8位的定時(shí)器或一個(gè)8位的PWM;用兩個(gè)數(shù)字模塊可以配置一個(gè)16位的PWM或一個(gè)UART,用一個(gè)模擬模塊可以配置一個(gè)放大器或一個(gè)比較器,用兩個(gè)模擬模塊可以配置一個(gè)低通濾波器或一個(gè)帶通濾波器;用一個(gè)數(shù)字模塊和一個(gè)模擬模塊可以配置一個(gè)⊿-∑ADC。PSoC的集成開(kāi)發(fā)環(huán)境已經(jīng)提供了幾十種常用的用戶模塊供用戶選擇。這些數(shù)字和模擬單元也可由設(shè)計(jì)師自己配置,構(gòu)造用戶自己獨(dú)一無(wú)二的用戶模塊。 PSoC的內(nèi)核采用哈佛(Harvard)架構(gòu),在24MHz 的頻率下具有高達(dá)4MIPS 的操作性能,并可以滿足苛刻的USB 睡眠功耗規(guī)范要求。該器件具有一個(gè)具有全面可編程性的內(nèi)部CPU 時(shí)鐘,甚至在正常操作期間也可對(duì)其加以改變。它有2-32K的FLASHC程序存儲(chǔ)空間,128-2K的RAM,這意味著PSoC 能夠?qū)崿F(xiàn)一個(gè)全混合信號(hào)設(shè)計(jì),而無(wú)需任何的外部元件。PSoC 的CPU 內(nèi)核允許對(duì)所有由用戶模塊配置組成的特殊功能寄存器進(jìn)行存取操作。在這種場(chǎng)合,該內(nèi)核還支持一種名為“動(dòng)態(tài)重構(gòu)”的概念。這一非常強(qiáng)大的能力使得PSoC 能夠在硬件的控制之下對(duì)其所有的用戶模塊進(jìn)行全面重構(gòu),并由此獲得一個(gè)全新的“個(gè)性”和功能。該能力使得PSoC的資源得到更充分的利用,120%的資源利用率在PSoC已經(jīng)成為可能。 PSoC的數(shù)字模塊 數(shù)字陣列由一個(gè)或幾個(gè)數(shù)字排組成,而一個(gè)數(shù)字排包含四個(gè)數(shù)字模塊。這四個(gè)數(shù)字模塊包括兩個(gè)基本的數(shù)字模塊(DBB)和兩個(gè)通信的數(shù)字模塊(DCB)。每一個(gè)數(shù)字模塊都可以被構(gòu)造成為一個(gè)獨(dú)立的數(shù)字功能塊。其中的數(shù)字功能包括:定時(shí)器、計(jì)數(shù)器、PWM、偽隨機(jī)碼發(fā)生器(PRS)和CRC校驗(yàn)。幾個(gè)數(shù)字模塊組合起來(lái)可以組成一個(gè)位數(shù)超過(guò)8位的數(shù)字功能塊。如,三個(gè)數(shù)字模塊可以構(gòu)造成為一個(gè)24位的PWM。通信的數(shù)字模塊可以構(gòu)造主或從的SPI和全雙工的UART。每一個(gè)數(shù)字模塊的輸入和輸出都可以通過(guò)排輸入總線或排輸出總線或排廣播總線與其他數(shù)字模塊相連。每一個(gè)數(shù)字模塊的輸入和輸出也可以經(jīng)由排的輸入和輸出總線到全局的輸入和輸出總線(奇的或偶的)與任一通用的I/O口相連。排輸出總線中相鄰的兩根線可以實(shí)施任何一種硬件邏輯運(yùn)算(可編程邏輯功能)。數(shù)字模塊的輸出也可以作為模擬SC模塊的時(shí)鐘同步信號(hào)提供給模擬模塊,見(jiàn)圖2。 數(shù)字模塊由數(shù)據(jù)通道、輸入多路器、輸出多路器、構(gòu)造寄存器和相應(yīng)的數(shù)據(jù)鏈路所組成,其框圖見(jiàn)圖3。每一個(gè)數(shù)字模塊都有7個(gè)寄存器來(lái)控制和決定它的功能和狀態(tài)。功能寄存器主要用于選擇這個(gè)模塊將要實(shí)施的功能;輸入寄存器主要用于選擇模塊所采用的時(shí)鐘源和數(shù)據(jù)源。輸出寄存器主要用于選擇模塊的輸出通路和輸出方式。數(shù)據(jù)通道包含三個(gè)數(shù)據(jù)寄存器(DR0、DR1、DR2)和一個(gè)控制寄存器,作為不同的功能塊,這些寄存器的作用也是不一樣的。當(dāng)一個(gè)數(shù)字模塊被作為定時(shí)器、計(jì)數(shù)器和PWM時(shí),DR0、DR1和DR2被分別作為周期寄存器,向下計(jì)數(shù)器和比較寄存器;而一個(gè)數(shù)字模塊被作為PRS和CRC時(shí),DR0、DR1和DR2被分別作為多項(xiàng)式寄存器,移位寄存器和種子寄存器;當(dāng)一個(gè)數(shù)字模塊被作為SPI和UART時(shí),DR0、DR1和DR2被分別作為輸入緩沖器,移位寄存器周和輸出緩沖器。另外每一個(gè)數(shù)字模塊都有一個(gè)中斷屏蔽位來(lái)確定這個(gè)模塊是允許還是禁止中斷。每一個(gè)數(shù)字模塊都有一個(gè)對(duì)應(yīng)的中斷向量和相應(yīng)的中斷服務(wù)程序。 由于數(shù)字模塊的可構(gòu)造性和可組合性,PSoC的數(shù)字模塊還可以實(shí)現(xiàn)其他的數(shù)字功能,如數(shù)字緩沖器、數(shù)字反向器、紅外接受器和紅外發(fā)射器等等。 PSoC的模擬模塊 PSoC的模擬陣列被設(shè)計(jì)成按列來(lái)排列。不同型號(hào)的PSoC,它的列數(shù)目是不一樣的。一般它的數(shù)目是1、2或4列。每一列有3個(gè)模擬模塊。每一列的第一個(gè)模塊被稱為連續(xù)時(shí)間的模擬模塊(ACT),而第二和第三個(gè)模塊被稱為開(kāi)關(guān)電容模擬模塊(ASC)。每一列都有一個(gè)輸入時(shí)鐘多路選擇器,可以選擇的時(shí)鐘信號(hào)可以是系統(tǒng)的時(shí)鐘,也可以是來(lái)自數(shù)字模塊的時(shí)鐘信號(hào),它主要用于開(kāi)關(guān)電容模擬模塊,它的頻率大小可以大致確定輸入到開(kāi)關(guān)電容模擬模塊的模擬信號(hào)的頻寬。每一列也都有一個(gè)模擬總線和一個(gè)比較總線,模擬總線可以將模擬模塊輸出的模擬信號(hào)路由到這一列其他模擬模塊,也可以經(jīng)緩沖器輸出到I/O口。比較總線可以連接到作為比較功能的模擬模塊的輸出,比較總線經(jīng)模擬LUT(帶緩沖的邏輯運(yùn)算器)可以被路由到任一個(gè)數(shù)字模塊,LUT上信號(hào)的跳變也可以產(chǎn)生中斷,觸發(fā)中斷服務(wù)程序。通過(guò)模擬LUT,相鄰兩列比較總線也可以實(shí)施任何一種硬件邏輯運(yùn)算(可編程邏輯功能)。 連續(xù)時(shí)間的模擬模塊以一個(gè)軌之軌、低漂移、低噪聲的運(yùn)算放大器為核心,見(jiàn)圖4,在其外圍集成了多個(gè)由寄存器控制的多路選擇器和電阻網(wǎng)絡(luò)。通過(guò)多路選擇器可以選擇運(yùn)放某一個(gè)輸入端的基準(zhǔn)電壓,和另一個(gè)輸入端的模擬信號(hào)路由,結(jié)合多路選擇器和電阻網(wǎng)絡(luò)可以選擇運(yùn)放的放大倍數(shù)或比較器的閥值電壓。這一個(gè)模擬模塊最基本的功能是用作可編程放大器或可編程模擬比較器,也可用作過(guò)零檢測(cè)或下一級(jí)模擬輸入的預(yù)處理。與其他模擬模塊組合可以實(shí)施更為復(fù)雜的模擬功能,如儀表放大器,信號(hào)的調(diào)制和解調(diào)等等。這個(gè)模塊還包含一個(gè)低功耗的模擬比較器,它和運(yùn)放有相同的輸入和輸出,它用于在SLEEP方式時(shí),雖然運(yùn)放已經(jīng)停止工作,外部事件仍然可以通過(guò)這個(gè)比較器來(lái)產(chǎn)生中斷喚醒PSoC。 這個(gè)模塊的輸出有三個(gè)出口,分別可以輸出到模擬總線(ABUS)、比較總線(CBUS)和本地輸出(OUT、GOUT、LOUT),本地輸出主要是用于和鄰近的模擬模塊相連。 開(kāi)關(guān)電容模擬模塊又有C型的開(kāi)關(guān)電容模塊(圖5)和D型的開(kāi)關(guān)電容模塊(圖6)兩種類型。這兩種類型在每一模擬列各有一個(gè)。開(kāi)關(guān)電容模擬模塊以一個(gè)軌之軌、低漂移、低噪聲的運(yùn)算放大器為核心,在其外圍集成了多個(gè)由寄存器控制的多路選擇器和四個(gè)(D型三個(gè))可由用戶設(shè)定的開(kāi)關(guān)電容網(wǎng)絡(luò)。多路選擇器用于選擇模擬輸入的參考電壓和模擬輸入信號(hào)的路由以及信號(hào)和開(kāi)關(guān)電容的拓?fù)湫问。四個(gè)電容網(wǎng)絡(luò)中的三個(gè)Acap、Bcap和CCap位于運(yùn)放的輸入端被稱為輸入開(kāi)關(guān)電容網(wǎng)絡(luò),而另一個(gè)電容網(wǎng)絡(luò)FCap則被稱為反饋開(kāi)關(guān)電容網(wǎng)絡(luò)。輸入開(kāi)關(guān)電容網(wǎng)絡(luò)中輸入電容的設(shè)定范圍從0到31個(gè)電容單位(每個(gè)電容單位大約為0.05pF),反饋開(kāi)關(guān)電容僅可設(shè)定16和32電容單位。另外每一個(gè)模擬列都有一個(gè)分頻器將列時(shí)鐘信號(hào)4分頻產(chǎn)生 1和 2來(lái)控制模塊里的十多個(gè)模擬開(kāi)關(guān),使它們同步協(xié)調(diào)工作,實(shí)現(xiàn)諸多的模擬功能。這個(gè)模塊的輸出也有三個(gè)出口,分別可以輸出到模擬總線(ABUS)、比較總線(CBUS)和本地輸出(OUT),本地輸出主要是用于和鄰近的模擬模塊相連。 D型的開(kāi)關(guān)電容模塊和C型的開(kāi)關(guān)電容模塊的區(qū)別在于D型沒(méi)有CCap輸入開(kāi)關(guān)電容網(wǎng)絡(luò),但是它的BCap輸入開(kāi)關(guān)電容網(wǎng)絡(luò)較C型有更大的靈活性。 基于開(kāi)關(guān)電容理論的開(kāi)關(guān)電容模塊可以實(shí)現(xiàn)放大、比較、積分、微分、AD等基本的模擬功能。而幾個(gè)開(kāi)關(guān)電容模塊的組合、開(kāi)關(guān)電容模塊與連續(xù)時(shí)間的模擬模塊的組合或模擬模塊與數(shù)字模塊的組合,使得PSoC對(duì)模擬和數(shù)字以及模數(shù)混合信號(hào)的處理能力變得非常強(qiáng)大。例如,在PSoC的集成開(kāi)發(fā)環(huán)境Designer里已經(jīng)可以提供的ADC用戶模塊的數(shù)量有數(shù)十個(gè),ADC分辨率從6位到14位,轉(zhuǎn)換速度從幾個(gè)sps到50ksps,ADC的種類有SAR、增量型和⊿-∑ADC。同樣,Designer也可以提供濾波器用戶模塊,包括二階和四階的波特瓦爾茲、契比雪夫、貝塞爾濾波器,有低通、帶通和帶阻濾波器。模擬模塊已經(jīng)可以實(shí)現(xiàn)的功能還包括DAC、采樣保持、調(diào)制解調(diào)、正弦波發(fā)生器和檢測(cè)器、DTMF發(fā)生器、FSK調(diào)制、邊帶分離等等。 PSoC功能模塊的構(gòu)造 PSoC功能模塊的構(gòu)造是通過(guò)配置相應(yīng)的寄存器來(lái)實(shí)現(xiàn)的。一個(gè)數(shù)字塊有7個(gè)寄存器,而一個(gè)模擬塊有4個(gè)寄存器用來(lái)構(gòu)造模塊的功能、輸入信號(hào)的選擇、輸出信號(hào)的路由并提供模塊的狀態(tài)信息。另外還有許多寄存器用于對(duì)全局的系統(tǒng)資源、模塊的周邊設(shè)備、多功能IO口的配置。全局的系統(tǒng)資源包括時(shí)鐘系統(tǒng)、電源管理系統(tǒng)、中斷及其使能、模擬參考電壓等等;模塊的周邊設(shè)備包括排的輸入和輸出總線、全局的輸入和輸出數(shù)字總線、模擬的輸入多路選擇器、模擬總線、比較總線、數(shù)字和模擬的LUT等。有兩種方式可以產(chǎn)生用戶所希望的功能模塊:常用的功能模塊可以從PSoC的集成開(kāi)發(fā)環(huán)境Designer所提供的用戶模塊集中選擇,只要進(jìn)行簡(jiǎn)單的參數(shù)設(shè)置即可實(shí)現(xiàn)。模塊的調(diào)用,參數(shù)的修改,數(shù)據(jù)的采集可以直接調(diào)用Designer所提供的相應(yīng)模塊的API函數(shù);常用的功能模塊,用戶可以自行直接設(shè)置模塊寄存器的值、時(shí)鐘信號(hào)的頻率和輸入輸出的路由,生成用戶自己獨(dú)特的用戶模塊。 所謂“動(dòng)態(tài)重構(gòu)”的概念,是指用戶希望在不同的時(shí)候使用同一個(gè)或多個(gè)模塊實(shí)施不同的功能,可以在開(kāi)始構(gòu)造模塊時(shí)對(duì)同一個(gè)或多個(gè)模塊實(shí)施雙重或多重構(gòu)造,程序在運(yùn)行時(shí)首先使用初始構(gòu)造,在運(yùn)行過(guò)程中需要使用二重或其他構(gòu)造時(shí),可以先卸載正在使用的構(gòu)造,隨后裝載欲使用的構(gòu)造,并可反復(fù)多次來(lái)回重復(fù)使用。PSoC支持動(dòng)態(tài)重構(gòu),使得PSoC的模擬和數(shù)字模塊具有一塊兩用和一塊多用的能力。較其他MCU、PSoC具有更高的資源利用率和資源分配的靈活性,系統(tǒng)的成本也更低。 |