用PSoCExpress實(shí)施透明無代碼PSoC應(yīng)用開發(fā)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
PSoC作為可編程的系統(tǒng)級芯片(SoC),克服了SoC制設(shè)計(jì)制造周期長和成本高的缺點(diǎn)。其集成了微控制器以及嵌入式系統(tǒng)中通常位于微控制器周圍的模擬及數(shù)字組件。
它具有混合信號ASIC的優(yōu)勢,同時(shí)又無需ASIC NRE或設(shè)計(jì)完成時(shí)間。從而幫助客戶節(jié)約設(shè)計(jì)時(shí)間和板上面積,降低了功耗及系統(tǒng)成本。
PSoC(可編程片上系統(tǒng))是Cypress半導(dǎo)體生產(chǎn)的包含有8位微處理器核和數(shù)字與模擬混合信號陣列的可編程片上系統(tǒng)。其應(yīng)用領(lǐng)域與8位的MCU相同。區(qū)別于8位的MCU,PSoC的周邊數(shù)字資源(如定時(shí)器、PWM、UART等等)和周邊模擬資源(放大器、比較器、濾波器等等)以數(shù)字模塊和模擬模塊的方式提供。不同型號的PSoC芯片的差異主要在于其擁有的數(shù)字模塊和模擬模塊的數(shù)量的不同。
用戶可以根據(jù)自己的需要來定義這些模塊。PSoC的集成開發(fā)環(huán)境PSoC Designer也預(yù)先為用戶定義了七十多個(gè)常用的數(shù)字和模擬資源供用戶選擇。如數(shù)字資源有:定時(shí)器、PWM、UART、SPI、CRC、PRS等等;模擬資源有放大器、比較器、濾波器等等;AD和DA轉(zhuǎn)換器由若干數(shù)字模塊和模擬模塊組合而成。所有這些預(yù)定義的模塊被稱之為用戶模塊。PSoC Designer也為用戶提供這些用戶模塊的API函數(shù)供用戶編程時(shí)調(diào)用。在PSoC Express出現(xiàn)以前,開發(fā)PSoC的應(yīng)用項(xiàng)目與MCU的應(yīng)用開發(fā)相似,使用PSoC Designer集成開發(fā)環(huán)境根據(jù)項(xiàng)目的需要調(diào)用和配置資源(用戶模塊),編寫代碼(C或匯編),編譯,調(diào)試….
現(xiàn)在由于PSoC Express可以在更高的抽象概念水平上運(yùn)行,且無需匯編或C的軟件開發(fā),因此設(shè)計(jì)人員只需要數(shù)小時(shí)或數(shù)天時(shí)間即可完成對PSoC器件的新設(shè)計(jì)開發(fā)、仿真及編程,而不再耗時(shí)數(shù)周乃至數(shù)月。由于其采用無縫多重處理器架構(gòu)、具有設(shè)計(jì)可視化功能,包含豐富的驅(qū)動(dòng)程序庫和多種傳輸函數(shù)的評估器以及軟仿真功能,因此系統(tǒng)開發(fā)工程師采用PSoC Express工具能夠更快地完成設(shè)計(jì)工作,并實(shí)現(xiàn)更高的可靠性。在PSoC Express中,尤其值得提到它的Monitor功能,它使得PSoC的無代碼、可視化應(yīng)用開發(fā)變得透明化。對某些比較復(fù)雜的應(yīng)用,需要及時(shí)調(diào)節(jié)或修改某些參數(shù)時(shí),不會(huì)再有那種捉摸不定和黑匣子的感覺。使你的調(diào)試過程更從容、更快、更有效率。
透明化應(yīng)用開發(fā)過程
使用PSoC Express的開發(fā)過程
1. 選擇輸入和輸出
運(yùn)行PSoC Express,選擇Design選項(xiàng)夾,根據(jù)設(shè)計(jì)的需要選擇相應(yīng)的輸入、輸出和接口驅(qū)動(dòng)器。如果有的話,根據(jù)要求設(shè)定驅(qū)動(dòng)器的參數(shù)。
2. 定義輸出的行為
根據(jù)不同的輸入變化,來定義系統(tǒng)的輸出行為。系統(tǒng)的輸入輸出的關(guān)系相對比較簡單的直接使用輸出驅(qū)動(dòng)器的傳輸函數(shù)來定義輸入和輸出的相應(yīng)關(guān)系。通過鼠標(biāo)右鍵點(diǎn)擊輸出驅(qū)動(dòng)器選擇傳輸函數(shù),輸出驅(qū)動(dòng)器提供三種傳輸函數(shù):優(yōu)先編碼器、狀態(tài)編碼器和表格對應(yīng)器。通過使用這三種傳輸函數(shù)建立起輸入和輸出的關(guān)系。輸入輸出的關(guān)系相對比較復(fù)雜的則需要使用評估器(Valuator),傳輸函數(shù)評估器包含6個(gè)傳輸函數(shù),它們除了輸出驅(qū)動(dòng)器里提到的三種以外,還有環(huán)狀延時(shí)(LoopDelay)、狀態(tài)機(jī)和閾值(SetPointRegin)三種傳輸函數(shù)。選擇更合適的傳輸函數(shù)來產(chǎn)生中間結(jié)果作為輸出驅(qū)動(dòng)器的輸入。
3. 仿真和驗(yàn)證
仿真為軟仿真。它主要通過交互式的方式,移動(dòng)或單擊輸入器件旁的圖形或小窗口來改變輸入的值或狀態(tài),輸出驅(qū)動(dòng)器和評估器的狀態(tài)或數(shù)值顯示圖形塊中的參數(shù)值隨即發(fā)生相應(yīng)的變化,通過觀察這個(gè)變化,用戶可以評估和驗(yàn)證他的設(shè)計(jì)是否實(shí)現(xiàn)他所要的結(jié)果。
4.生成系統(tǒng)文件及使用編程器下載十六進(jìn)制編程文件到PSoC芯片。
通常如果順利的話,軟件設(shè)計(jì)便大功告成。PSoC芯片的運(yùn)行結(jié)果將滿足設(shè)計(jì)工程師的預(yù)期。但是,如果PSoC芯片的運(yùn)行結(jié)果沒有滿足設(shè)計(jì)工程師的預(yù)期,則他需要重新檢查他的整個(gè)設(shè)計(jì)過程。有些項(xiàng)目需要通過仔細(xì)調(diào)節(jié)輸入驅(qū)動(dòng)器的某些參數(shù),才能達(dá)到設(shè)計(jì)工程師的預(yù)期效果。早先的PSoC Express版本,由于沒有提供有效的調(diào)試方法,當(dāng)用戶遇到諸如此類的問題時(shí),便會(huì)有手足無措的感覺、或者仿佛感到PSoC芯片象一個(gè)黑匣子,其中間過程和中間結(jié)果不得而知。調(diào)試過程非常盲目。
現(xiàn)在PSoC Express 3.0版本為用戶提供了Monitor功能。它使用USB到I2C的轉(zhuǎn)接器將PSoC芯片和PC上的PSoC Express開發(fā)環(huán)境連接起來,在用戶用PSoC Express開發(fā)項(xiàng)目時(shí)增加一個(gè)步驟,即第一個(gè)階段選擇輸入和輸出時(shí),從接口驅(qū)動(dòng)器中選擇一個(gè)從的I2C驅(qū)動(dòng)器加入到項(xiàng)目中即可。幾乎所有的的PSoC芯片都包含有I2C資源。當(dāng)PSoC運(yùn)行時(shí),啟動(dòng)Monitor功能,就可以在PSoC Express開發(fā)環(huán)境的輸出窗口中看到所有中間變量的實(shí)時(shí)數(shù)據(jù),它可以將多個(gè)中間變量的實(shí)時(shí)數(shù)據(jù)以動(dòng)態(tài)曲線的方式給出。對有些驅(qū)動(dòng)器,在Monitor的功能里,還提供調(diào)諧功能,并提供專用輸入驅(qū)動(dòng)器參數(shù)調(diào)節(jié)窗口,當(dāng)你在這個(gè)窗口里調(diào)節(jié)某一個(gè)參數(shù)時(shí),馬上就可以看到受影響的曲線是如何變化的。通過這么一個(gè)簡單的工具和PSoC Express所集成的Monitor功能,使得無代碼的PSoC應(yīng)用開發(fā)透明化。使得用戶開發(fā)和調(diào)試項(xiàng)目變得更輕松而且更有趣。
透明化應(yīng)用開發(fā)實(shí)施
一個(gè)用Monitor功能實(shí)施透明化應(yīng)用開發(fā)的實(shí)例是用PSoC Express開發(fā)并實(shí)現(xiàn)觸摸感應(yīng)的項(xiàng)目。在這個(gè)項(xiàng)目里有一個(gè)觸摸感應(yīng)按鍵和一個(gè)由8個(gè)感應(yīng)塊組成的滑條。有無感應(yīng)按鍵和手指在滑條上的位置信息被顯示在一個(gè)LCD上。PSoC Express包含有三個(gè)高級的電容感應(yīng)式觸摸感應(yīng)輸入驅(qū)動(dòng)器:CSD、CSA、CSR。它僅需要一顆PSoC芯片加極少的外部無源元件就可以在一個(gè)項(xiàng)目中同時(shí)實(shí)現(xiàn)多個(gè)觸摸感應(yīng)按鍵和1或2個(gè)滑條的功能。其輸入感應(yīng)器僅僅是在PCB板上被連到PSoC芯片IO口上的銅箔。
1. 啟動(dòng)并建立一個(gè)項(xiàng)目
首先從輸入驅(qū)動(dòng)器庫中選擇并放置觸摸感應(yīng)按鍵和滑條驅(qū)動(dòng)器并設(shè)置參數(shù),然后從輸出驅(qū)動(dòng)器庫中選擇并放置LCD驅(qū)動(dòng)器并設(shè)置參數(shù)。我們還需要從輸入驅(qū)動(dòng)器庫中選擇并放置觸摸感應(yīng)算法模塊驅(qū)動(dòng)器,這里選擇CSD算法,并設(shè)置相關(guān)參數(shù)。最后從接口驅(qū)動(dòng)器庫中選擇并放置從I2C驅(qū)動(dòng)器。所有模塊放置完畢,通過鼠標(biāo)右鍵點(diǎn)擊輸出驅(qū)動(dòng)器LCD并選擇狀態(tài)編碼器傳輸函數(shù)來建立輸入和輸出之間的對應(yīng)關(guān)系。如,對按鍵,當(dāng)按鍵的值等于1時(shí),LCD的第一排顯示Button0,等于0時(shí),LCD的第一排不顯示。對滑條,沒有手指觸摸時(shí),LCD的第二排顯示0,有手指觸摸時(shí),顯示手指在滑條上的位置值。一旦輸入和輸出之間的對應(yīng)關(guān)系建立好,便有紅線將對應(yīng)的輸入和輸出連接起來。(見圖一)到此,主要的設(shè)計(jì)任務(wù)已經(jīng)完成。
圖1:從輸入驅(qū)動(dòng)器庫中選擇并放置觸摸感應(yīng)按鍵和滑條驅(qū)動(dòng)器并設(shè)置參數(shù)。
現(xiàn)在可以用軟仿真來評估和驗(yàn)證這個(gè)設(shè)計(jì)是否符號上面的要求。如果正確,就可以通過Build來配置管腳和生成系統(tǒng)文件,它包括產(chǎn)生用于編程的十六進(jìn)制代碼。然后啟動(dòng)編程功能,將十六進(jìn)制代碼文件下載到PSoC芯片中。
由于觸摸感應(yīng)按鍵和滑條的靈敏度受PCB板材、印刷線路板的布線、感應(yīng)銅箔的尺寸大小、覆蓋物的介質(zhì)和厚度等諸多因素的影響,所以對一個(gè)具體的應(yīng)用需要通過反復(fù)地調(diào)節(jié)輸入驅(qū)動(dòng)器的參數(shù)才能找到合適的靈敏度。在此Monitor的作用被充分的體現(xiàn)出來。
2. 啟動(dòng)Monitor功能
在啟動(dòng)Monitor功能之前,先用USB轉(zhuǎn)I2C橋?qū)C和應(yīng)用板上的編程口連接起來。然后點(diǎn)擊Monitor啟動(dòng)Monitor功能。Monitor功能被啟動(dòng)之后,通過點(diǎn)擊Power Selection,選擇供電電壓(5V、3.3V和外部供電),可以通過USB轉(zhuǎn)I2C橋給應(yīng)用板供電。一旦應(yīng)用板得電,就可以在PSoC Express的輸出窗口中看到滾動(dòng)的數(shù)據(jù)。當(dāng)從View菜單點(diǎn)擊Variables Chart時(shí),一個(gè)圖形顯示畫面便顯示出來。這個(gè)圖形顯示畫面的右面列出了所有的可以看到的中間變量。當(dāng)點(diǎn)擊Play按鈕時(shí)所有這些變量值以動(dòng)態(tài)曲線的方式被顯示出來。這些曲線不同的顏色對應(yīng)不同的變量。你可以改變采樣的速率,也可以將不需要看的曲線屏蔽掉。
在這個(gè)例子里,可以通過觀察與感應(yīng)電容相對應(yīng)的RawCount的值及其他相關(guān)值的變化來調(diào)節(jié)感應(yīng)鍵和滑條的靈敏度。比如,當(dāng)手指觸摸感應(yīng)鍵時(shí)可以看到Button0_RawCount的變化量以及Button0_RawCount相對Baseline的差值。當(dāng)它太大或太小時(shí),可以通過改變輸入驅(qū)動(dòng)器的參數(shù)使其有一個(gè)合適的值進(jìn)而找到一個(gè)合適的靈敏度。這使得調(diào)試變得即簡單又直觀。(見圖2)
圖2:通過改變輸入驅(qū)動(dòng)器的參數(shù)實(shí)現(xiàn)簡單直觀的調(diào)試。
3. 用Tuning進(jìn)行調(diào)試
對有些輸入驅(qū)動(dòng)器,PSoC Express在Monitor功能的基礎(chǔ)上還增加了Tuning的功能。Tuning的作用在于不需要每次改變輸入驅(qū)動(dòng)器的參數(shù)后重新對整個(gè)項(xiàng)目進(jìn)行Build和下載代碼到芯片中。它可以實(shí)施在線調(diào)試,即在線改變參數(shù),參數(shù)改變以后立即可以看到輸出結(jié)果的變化。當(dāng)參數(shù)全部調(diào)好以后,最后重新對整個(gè)項(xiàng)目進(jìn)行一次Build和下載代碼到芯片里即可。圖三和圖四是CSD模塊的感應(yīng)按鍵和滑條的Tuning窗口界面。
圖3:CSD模塊的感應(yīng)按鍵和滑條的Tuning窗口界面。
圖4:利用Tuning窗口界面實(shí)施在線調(diào)試。
它通過在Monitor狀態(tài),用鼠標(biāo)右鍵點(diǎn)擊相應(yīng)的輸入驅(qū)動(dòng)器就可以打開它的Tuning窗口。從Tuning窗口中可以看到對應(yīng)按鍵和滑條的所有參數(shù)都集中在了窗口的左面,一目了然。窗口的右面以棒圖的方式顯示感應(yīng)按鍵或滑條的RawCount的值。上面的一些橫線則代表噪聲閾值和手指閾值以及手指閾值的正和負(fù)的遲滯等參數(shù)。對滑條,被計(jì)算出來的手指的位置用綠線表示。這種直觀明了的調(diào)試方式進(jìn)一步加快了調(diào)試的過程并增加了調(diào)試的樂趣。