劉亦萍, 李德運(yùn), 何學(xué)誠(chéng), 陳陶, 龍康, 楊奇凡
(上海第二工業(yè)大學(xué) 工學(xué)部,上海 201209)
CYPRESS公司在全球率先實(shí)現(xiàn)了在單芯片內(nèi)的“模擬和數(shù)字全混合陣列”[1],對(duì)未來(lái)電子系統(tǒng)的設(shè)計(jì)方法產(chǎn)生了深遠(yuǎn)的影響,在半導(dǎo)體技術(shù)高速發(fā)展的今天,芯片集成度越來(lái)越高,使得在單芯片上實(shí)現(xiàn)復(fù)雜系統(tǒng)成為可能,Cypress公司率先在業(yè)界實(shí)現(xiàn)了完全意義上的PSoC解決方案,即在單芯片上實(shí)現(xiàn)了MCU、數(shù)字和模擬系統(tǒng)的高度集成[2]。PSoC技術(shù)的不斷發(fā)展將大大推動(dòng)電子系統(tǒng)設(shè)計(jì)方法的創(chuàng)新,并且對(duì)未來(lái)嵌入式系統(tǒng)設(shè)計(jì)領(lǐng)域帶來(lái)深遠(yuǎn)的影響。
本項(xiàng)目研究有限自動(dòng)狀態(tài)機(jī)(Finite State Machine,FSM),利用摩爾狀態(tài)機(jī)設(shè)計(jì)編碼檢測(cè)器[3],用PSoC芯片實(shí)現(xiàn)數(shù)字編碼檢測(cè)器。
本文將介紹通過(guò)控制邏輯電路,對(duì)計(jì)數(shù)器控制查找表產(chǎn)生的1001序列進(jìn)行檢測(cè),再通過(guò)編寫(xiě)代碼實(shí)現(xiàn)在LCD屏幕上顯示出檢測(cè)到1001的次數(shù)。圖1是編碼檢測(cè)系統(tǒng)總框圖。
圖1 編碼檢測(cè)系統(tǒng)總框圖
圖2中a模塊是設(shè)計(jì)集成的十六進(jìn)制計(jì)數(shù)器,通過(guò)Q3,Q2,Q1,Q0狀態(tài)輸出控制查找表LUT實(shí)現(xiàn)所需1001信號(hào)的發(fā)生[4]。
圖2 信號(hào)發(fā)生集成圖
圖3為由查找表設(shè)計(jì)的檢測(cè)信號(hào),in3,in2,in1,in0為Q3,Q2,Q1,Q0控制,Out0為檢測(cè)信號(hào)的輸出,其中含有2個(gè)1001序列。
圖3 1001檢測(cè)信號(hào)設(shè)計(jì)
設(shè)計(jì)1001序列檢測(cè)器的邏輯電路圖[5],因?yàn)闄z測(cè)器通過(guò)分析有5種獨(dú)立的狀態(tài),所以使用了3個(gè)D觸發(fā)器(當(dāng)n=3時(shí)會(huì)產(chǎn)生23=8種狀態(tài))。
表1是檢測(cè)器的狀態(tài)轉(zhuǎn)換表,狀態(tài)轉(zhuǎn)換表列出了數(shù)據(jù)輸入端(Data_In)情況,并且狀態(tài)機(jī)將隨著輸入信號(hào)變化到兩種可能的下一狀態(tài)中的其中一個(gè)。
表1 1001序列檢測(cè)器狀態(tài)轉(zhuǎn)換表
通過(guò)狀態(tài)轉(zhuǎn)換表可得出各觸發(fā)器的布爾邏輯表達(dá)式與檢測(cè)器的輸出布爾邏輯表達(dá)式:(Data_In代表輸入,Detected代表輸出)
根據(jù)以上表達(dá)式,在PSOC 3.3平臺(tái)上設(shè)計(jì)出邏輯電路如圖4所示。
圖4 1001序列檢測(cè)器電路圖
將原理圖4集成為圖5中所示的jiance原理圖符號(hào),簡(jiǎn)稱(chēng)為“1001邏輯序列檢測(cè)”[6]。
將1001信號(hào)發(fā)生與1001序列檢測(cè)相連,實(shí)現(xiàn)了1001序列檢測(cè)。
圖5 1001序列檢測(cè)模塊圖
對(duì)檢測(cè)出的1001信號(hào)的次數(shù)可以在LCD顯示屏上顯示[7]。圖6為計(jì)數(shù)顯示程序框圖。
圖6 計(jì)數(shù)顯示程序框圖
圖7為1001序列檢測(cè)系統(tǒng)集成原理圖。打開(kāi)引腳分配見(jiàn)表2,進(jìn)行相應(yīng)的引腳分配[8],通過(guò)十六進(jìn)制計(jì)數(shù)器和查找表產(chǎn)生的1001信號(hào),經(jīng)過(guò)數(shù)字電路構(gòu)成的1001序列檢測(cè)器檢測(cè),由LCD顯示檢測(cè)出的1001的次數(shù)。程序經(jīng)編譯、下載到PSoC開(kāi)發(fā)板上,并在PSoC板上連接好外部接線(xiàn)[9],經(jīng)過(guò)軟硬件聯(lián)調(diào)可見(jiàn),1001序列檢測(cè)到則LED亮,并可在LCD顯示屏上顯示檢測(cè)到的次數(shù)。
表2 引腳分配
圖7 1001序列檢測(cè)系統(tǒng)原理圖
圖8 基于PSoC編碼檢測(cè)器的硬件實(shí)現(xiàn)
在數(shù)字系統(tǒng)中,有限自動(dòng)狀態(tài)機(jī)(FSM)的應(yīng)用研究不多,在本項(xiàng)目里,通過(guò)Cypress公司開(kāi)發(fā)的PSoC開(kāi)發(fā)板上設(shè)計(jì)實(shí)現(xiàn)了1001序列的檢測(cè),并通過(guò)PSoC C語(yǔ)言編程,實(shí)現(xiàn)了對(duì)檢測(cè)結(jié)果的計(jì)數(shù)和LCD的顯示[10]。圖8為基于PSoC編碼檢測(cè)器的硬件實(shí)現(xiàn)圖。
運(yùn)用有限自動(dòng)狀態(tài)機(jī)的設(shè)計(jì)方法,同時(shí)使用PSoC開(kāi)發(fā)板與Cypress公司的PSoC 3.3開(kāi)發(fā)平臺(tái)設(shè)計(jì)相結(jié)合縮短了開(kāi)發(fā)周期。