PSoC的動(dòng)態(tài)配置能力及其實(shí)現方法
摘要:首先闡述Cypress公司的可編程片上系統(PSoC)的動(dòng)態(tài)配置能力及其實(shí)現結構,概要地列出幾種對PSoC微控制器在系統編程(ISP)的方法;在此基礎上分析CY8C26443-24PI通過(guò)。
關(guān)鍵詞:可編程片上系統 在系統編程 閃速存儲器 非易失性存儲器 嵌入式微控制器
引言
隨著(zhù)集成電路應用的飛速發(fā)展,片上系統的結構變的越來(lái)越復雜,這對嵌入式微控制器(Embedded MCU)的性能提出了更高的要求。和目前的16位甚至32位的微控制器相比,8位微控制器結構簡(jiǎn)單、代碼密度高,是嵌入式系統的重要組成部分。傳統的8位MCU結構比較成熟,但是作為嵌入式應用,其各方面性能還遠不能令人滿(mǎn)意。此外,一般在嵌入式系統的應用中,都需要 使用幾十種甚至是更多的模擬或數字外圍元器件。熟悉MCU開(kāi)發(fā)的工程師們都知道,在MCU的開(kāi)發(fā)過(guò)程中,最需要花時(shí)間和精力的就是元器件的選購,以及元器件兼容性方面的考慮。目前在市場(chǎng)上有成千上萬(wàn)不同種外圍元器件,設計人員要想從中尋找到適合自己應用的元器件是一件令人頭痛的事情。因此,設計工程師的理想方案似乎是采用定制的SoC芯片,但是如果采用定制微控制器、ASIC和PLD器件,一方面價(jià)格比較昂貴,另一方面需要設計人員具有專(zhuān)門(mén)的設計技能。因此,研制一個(gè)高效率、外圍元器件可嵌入配置的、低功耗的≮位微控制器是很有必要的。
作為ASIC(Application Specific IC)設計方法學(xué)中的新技術(shù),SoC始于20世紀90年代中斷。1994年Motorola發(fā)布的Flex CoreTM系統(用來(lái)制作基于68000TM和Power PCTM的定制微處理器)和1995年LSI Logic公司為SONY公司設計的SoC,可能是基于IP(Intellectual Property)核完成SoC設計的最早報導。由于SoC可以充分利用已有的設計積累,顯著(zhù)地提高ASIC的設計能力,因此發(fā)展非常迅速。
PSoC(Programmable System on Chip)是美國Cypress MicroSystems公司于最近推出的新一代功能強大的8位可配置的嵌入式單片機。該系列單片機與傳統單片機的根本區別在于其內部集成的數字和模擬block模塊,工程師可以根據不同設計要求調用不同的數字和模擬block模塊,完成芯片內部的功能設計;實(shí)現使用一塊芯片就可以配置成具有多種不同外圍元器件的微控制器,建立一種可配置嵌入式微控制器;用以實(shí)現從確定系統功能開(kāi)始,到軟/硬件劃分,并完成設計的整個(gè)過(guò)程。因此,PSoC能夠適應非常復雜的實(shí)時(shí)控制需求,使用它進(jìn)行產(chǎn)品開(kāi)發(fā)可以大大提高開(kāi)發(fā)效率,降低系統開(kāi)發(fā)的復雜性和費用,同時(shí)增強系統的要可靠性和抗干擾能力;因此,它特別適用于各種控制和自動(dòng)化領(lǐng)域。
1 PSoC的動(dòng)態(tài)配置能力及實(shí)現
閃速存儲器(Flash Memory)是一類(lèi)非易失性存儲器NVM(Non-Volatile Memory),它即使在供電電源關(guān)閉后仍能保持片內信息;而諸如DRAM、SRAM這類(lèi)易失性存儲器,當供電電源關(guān)閉時(shí)其片內信息隨丟失。閃速存儲器還集合了其它非易失性存儲的特點(diǎn):與EPROM相比較,閃速存儲器在系統電可擦除和可重復編程具有明顯的優(yōu)勢,它不需要特殊的高電壓就可以完成擦除和/或編程操作;與EEPROM相比較,閃速存儲器具有成本低、密度大的特點(diǎn)。其獨特的性能使其廣泛地運用于各個(gè)領(lǐng)域,包括嵌入式系統。
PSoC器件內就集成有一個(gè)SONOSTM(硅/氧化氮/氧化硅)工藝制造的閃速存儲器,以及快速微控制器(MCU)和SRAM及模擬和數字的可編程陣列模塊(即PSoC block)。在PSoC芯片內共有2個(gè)256字節的寄存器空間。這些寄存器空間可以用于個(gè)性化和參數化設定片上資源和數據讀寫(xiě);通過(guò)系統提供的PSoC Designer開(kāi)發(fā)工具,設計人員可以合理地配置數字和模擬PSoC block參數,并且寫(xiě)入PSoC芯片的閃速存儲器中,完成PSoC芯片的設計工作。當PSoC芯片工作時(shí),芯片根據已配置的數字和模擬PSoC block參數,完成對寄存器空間設定,配置系統硬件;根據不同的系統需求,設計人員可以改變數字和模擬PSoC block參數的配置,實(shí)現多種特定配置的MCU外圍元器件的功能。這就是可編程嵌入式片上系統的配置能力。不但如此,PSoC還可以實(shí)現動(dòng)態(tài)重新配置,即在運行時(shí),根據系統不同時(shí)刻的需求,通過(guò)編程動(dòng)態(tài)地改變存儲在片內閃速存儲器中設定的參數,重新定義系統所需要的功能模塊的種類(lèi)和數量,動(dòng)態(tài)地完成芯片上資源的重新分配,實(shí)現新的外圍元器件的功能。這就是可編程片上系統的動(dòng)態(tài)重新配置能力(Dynamic ReConfigurability)。
為了節省設計時(shí)間及減少重復性勞動(dòng),Cypress也提供各種用戶(hù)模塊,在其器件庫中存儲有多種預設計外圍元器件模塊。用戶(hù)通過(guò)使用其系統提供的IDE,調用這些功能模塊;在功能模塊設計方面,在反復考察微控制器上的外圍器件和用于典型設計的模擬集成電路基礎上,Cypress提供了多種常用的數字和模擬外圍器件以供調用。目前在PSoC Designer 3.10版本的外圍器件庫中包含的用戶(hù)模塊有:
數/模轉換器(6位、8位);
模/數轉換器(增量式、Σ-Δ式……);
放大器(8位、16位、32位);
計數器(8位、16位、32位);
定時(shí)器(8位、16位、32位);
濾波器(高通、低通、帶通);
脈寬調制(PWM8、PWM16、PWM32);
各種數字設備(包括液晶模塊、E2PROM);
通信模塊(SPI主、SPI從、TX、RX、UART);
……
其提供的集成開(kāi)發(fā)環(huán)境(IDE)還包含用戶(hù)模塊描述、說(shuō)明,以及用戶(hù)指導/代碼摘錄、應用程序接口A(yíng)PI(Application Programming Interface)和中斷服務(wù)程序ISR(Interrupt Service Routine),不用戶(hù)調用用戶(hù)模塊時(shí)和設備配置表產(chǎn)生時(shí),功能模塊被自動(dòng)插入到工程文件中。設計工程師可以使用API或者ISR以完成用戶(hù)程序的編制,實(shí)現任何定制的應用。
其提供的集成開(kāi)發(fā)環(huán)境(IDE)還包含用戶(hù)模塊描述、說(shuō)明,以及用戶(hù)指導/代碼摘錄、應用程序接口A(yíng)PI(Application Programming Interface)和中斷服務(wù)程序ISR(Interrupt Service Routine),當用戶(hù)調用用戶(hù)模塊時(shí)和設備配置表產(chǎn)生時(shí),功能模塊被自動(dòng)插入到工程文件中。設計工程師可以使用API或者ISR以完成用戶(hù)程序的編制,實(shí)現任何定制的應用。
下面利用動(dòng)態(tài)重新配置能力,完成如下功能需求的PSoC芯片設計工作。在不同的時(shí)刻,系統需要二套不同功能的外圍器件,時(shí)刻一是系統需要完成數據的接收工作,時(shí)刻二需要完成數據的發(fā) 送工作。使用普通的芯片,需要搭建大量的外圍電路;這項功能。系統不同時(shí)刻需要的帶有外圍器件的功能需求如圖1所示。
要完成此塊含有相當豐富功能的微控制器芯片,必須通過(guò)應用IDE內的Device Editor完成用戶(hù)模塊的選用及參考配置工作。首先,根據時(shí)間先后,劃分出基本配置和其它功能配置;在基本配置內必須完成對共有資源(定時(shí)器、計數器、模數、數模轉換等)的選用、放置和參數配置工作(時(shí)鐘頻率、輸入/輸出總線(xiàn)、I/O)。然后,完成功能配置要求(半雙工UART接收、發(fā)送模塊功能配置),在各自不同的功能配置中,根據功能要求設定系統參數。
在A(yíng)pplication Editor部分產(chǎn)生配置文件,編寫(xiě)應用程序代碼。利用程序完成功能配置的裝入、卸載工作以及實(shí)現相應的功能轉換,完成預定的芯片功能。具體的示例程序代碼如下:
;*******************************************
area bss(RAM) ;定義變量
RXdata; blk 1
area text(ROM,REL)
;*********************************************
_main:
call Counter8_1_Start;基本配置
call Timer16_1_Start
……
;*********************************************
receiver:
;動(dòng)態(tài)完成UART接收器重新配置工作
call LoadConfig_receiver ;裝入UART接收配置
call RX8_1_Start ;啟動(dòng)RX模塊工作
receiverIoop:
tst reg[RX8_1_CONTROL_REG],
RX8_RX_COMPLETE ;測試接收
jz receiverloop ;判斷完成
call bRX8_1_ReadRxData ;讀寫(xiě)存儲數據
mov [RXdata],A
;*********************************************
transmitter:
;動(dòng)態(tài)完成UART發(fā)送器重新配置工作
call LoadConfig_transmitter ;裝入UART發(fā)送配置
call TX8_1_Start ;啟動(dòng)TX模塊工作
inc [RXdata]
mov A,[RXdata] ;準備數據發(fā)送
call TX8_1_SendData ;發(fā)送數據
;*********************************************
transmitterloop:
tst reg[TX8_1_CONTROL_REG],
TX8_TX_COMPLETE ;測試發(fā)送
jz transmitterloop ;判斷完成
jmp trceiver ;返回數據接收
通過(guò)應用IDE,就可以簡(jiǎn)單地實(shí)現以上特定的MCU的需求,根據設計進(jìn)展過(guò)程和功能需求的改變,對PSoC微控制器進(jìn)行配置和重新配置。因此,PSoC可以降低成本,擴大PSoC資源利用率,簡(jiǎn)單實(shí)現或重復實(shí)現任何定制的應用。
2 PSoC在系統編程
通過(guò)以上討論,了解了PSoC的動(dòng)態(tài)重新配置能力;但在實(shí)際應用中,我們常常必須在工業(yè)現場(chǎng)完成對PSoC的重新配置。因此,在系統編程(ISP)技術(shù)在實(shí)現應用中顯著(zhù)尤為重要。所謂在系統編程(ISP)就是一種可以讓最終用戶(hù)對已經(jīng)安裝在電路板上的設備進(jìn)行編程和重新編程的技術(shù)。它可以允許在制造過(guò)程和應用現場(chǎng)中進(jìn)行對微控制器編程。
PSoC芯片內部提供一個(gè)包含二個(gè)引腳的特殊串行接口,使用它們可以發(fā)送和接收來(lái)自在系統編程的數據。但是這種在系統編程需要使用仿真器作為編程設備。編程器包含5根信號線(xiàn)(Vcc、GND、Xres、SCLK、DATA);系統提供兩種編程模式:設備復位編程和設備電源循環(huán)編程。一般推薦使用設備復位編程模式。在PSoC Designer內選定編程模式,就可以通過(guò)圖2的相應連接完成在系統編程。要注意的是,在設備復位編程模式下不需要Vcc信號;在設備電源循環(huán)編程目標板消耗的電流不能超過(guò)300 mA,否則會(huì )造成仿真器損壞。
使用圖2所提供的系統連接方式,用戶(hù)可以非常簡(jiǎn)單地對PSoC芯片實(shí)現在系統編程。同樣,用戶(hù)也可以使用UART接口、并行接口或者用戶(hù)自定義的接口來(lái)完成ISP編程,但是由于PSoC片內不直接提供代碼支持這種應用,因此用戶(hù)必須自己完成外部應用電路及ISP代碼的編寫(xiě)。通過(guò)使用PSoC片內提供管理員ROM和重新配置的應用來(lái)解決此ISP代碼編寫(xiě)的問(wèn)題。用戶(hù)編寫(xiě)ISP代碼存儲在片內閃存的高端地址空間內,不可擦除;用戶(hù)代碼存儲在片內閃存的低端空間地址空間內,當ISP代碼執行時(shí),它將重新配置PSoC MCU系統,通過(guò)特定的接口與主機通信,接收來(lái)自于此接口的數據包,然后對芯片編程(使用用戶(hù)代碼)。編程完成后,PC指針跳回地址0,系統復位,根據新的用戶(hù)代碼重新配置芯片,用戶(hù)可以根據需要指定用戶(hù)代碼和ISP代碼空間大小,但是當使用在系統編程時(shí),ISP應用代碼不可以覆蓋。用戶(hù)新的代碼可以對ISP代碼進(jìn)行調用。圖3是一個(gè)應用UART接口完成ISP應用的基本電路。
在此電路內使用DB9連接器和RS232轉換電路完成ISP編程特性。主機通過(guò)串口對芯片進(jìn)行編程。P0.4和P0.6用作TXD和RXD。因此在ISP應用過(guò)程中,PSoC MCU配置此2個(gè)引腳作為通信引腳,并且與內部UART模塊相聯(lián),用戶(hù)同樣也可以設定其它需要的用戶(hù)模塊,并設定一個(gè)按鈕以外部觸發(fā)ISP應用。用戶(hù)在程序內增加一部分代碼監測按鈕的狀態(tài),以執行ISP應用程序。程序內可以使用中斷或掃描方式監測按鈕狀態(tài)。具體的程序流程如圖4所示。
結語(yǔ)
PSoC的動(dòng)態(tài)配置能力給開(kāi)發(fā)者提供了快速方便的編程和開(kāi)發(fā)方法,同時(shí)也為單片機的應用開(kāi)拓了更大的空間。合理地利用片內集成的閃速存儲器可以降低產(chǎn)品開(kāi)發(fā)成本,縮短產(chǎn)品開(kāi)發(fā)周期。因此,本MCU結構具有廣闊的應用推廣前景。
電能表相關(guān)文章:電能表原理
評論