引言
最近幾年,,隨著電子技術(shù)及半導(dǎo)體工藝的迅猛發(fā)展,,片上系統(tǒng)(SoC),,特別是可配置片上系統(tǒng)PsoC(Programmable System on Chip),,已逐漸成為微控制器的主流產(chǎn)品,。因此,要求設(shè)計(jì)工程師必須迅速地掌握SoC的開發(fā)特點(diǎn)和要求,,盡快融入SoC的開發(fā)大潮中去,。但是,SoC系統(tǒng)設(shè)計(jì)帶來了與傳統(tǒng)系統(tǒng)設(shè)計(jì)全然不同的挑戰(zhàn),,其中包括從處理器和存儲(chǔ)器的選擇到產(chǎn)品環(huán)境的考慮,。如果設(shè)計(jì)工程師能夠深入理解SoC的開發(fā)特點(diǎn),并且考慮部件之間如何交互,,以及各種因素帶來的影響等問題,,就可以直接提高產(chǎn)品設(shè)計(jì)的成功率和開發(fā)效率,降低系統(tǒng)開發(fā)的復(fù)雜性和費(fèi)用,,同時(shí)增強(qiáng)系統(tǒng)的可靠性和抗干擾能力,。
文章根據(jù)本人的開發(fā)經(jīng)歷,結(jié)合選色控制器的開發(fā)過程,,為設(shè)計(jì)工程師提供指導(dǎo),,從所有層面上幫助他們?yōu)榻窈蟮脑O(shè)計(jì)項(xiàng)目做更好的準(zhǔn)備。
人們?cè)诟鞣N各樣的微控制器和嵌入式控制系統(tǒng)設(shè)計(jì)過程中發(fā)現(xiàn),,并非不同的設(shè)計(jì)就必須用到完全不同的外圍器件;相反,,這其吸大量共的部分,,因此,啟發(fā)了芯片設(shè)計(jì)工程師建立此種可配置微控制器,。在芯片內(nèi)建立一些通用的數(shù)字和模擬塊(digital and analog block),,把它們配置成微控制器的各種功能模塊(Module),。這樣,在ASIC設(shè)計(jì)過程中,,應(yīng)用工程師就可以根據(jù)自己的不同設(shè)計(jì)要求調(diào)用不同的功能模塊,,完成芯片內(nèi)部的功能配置,實(shí)現(xiàn)使用一塊芯片就可以配置成具多種不同外圍器件的微控制器,。
目前,,市場(chǎng)上有Cypress MicroSystems,InC和Cygnal Integrated Products,,Inc生產(chǎn)可配置的SOC微控制器,。本控制系統(tǒng)選用Cypress MicroSystems,Inc生產(chǎn)的M8C內(nèi)核PsoC微控制器作為控制核心。
下面我們首先熟悉開發(fā)的任務(wù)要求,。選色控制器是一個(gè)由信息采集,、鍵盤、顯示及輸出驅(qū)動(dòng)等部分組成的控制系統(tǒng),,主要用來取代進(jìn)口和國產(chǎn)劍桿織機(jī)上的紙帶輸入式光電緯紗選色器,。 4.1 用戶模塊的選擇和放置
為了便于用戶根據(jù)不同的實(shí)際需要對(duì)工作方式及其它參數(shù)進(jìn)行修改,要求所有的參數(shù)及組態(tài)均可通過面板睥幾個(gè)操作鍵進(jìn)行輸入,、檢查,、修改;并可在突然并機(jī)的情況下,,重新開機(jī)后,,自動(dòng)恢復(fù)斷點(diǎn)參數(shù)信息。
根據(jù)用戶提出的技術(shù)指標(biāo),,我們還必須把它進(jìn)步量化,,并且進(jìn)一步完成功能設(shè)計(jì)方案。
1 硬件方案設(shè)計(jì)
1.1 選擇微處理器
在設(shè)計(jì)任務(wù)確定后,,應(yīng)對(duì)控制系統(tǒng)所需要的硬件做出初步估計(jì)和選擇,。微處理器是整個(gè)控制系統(tǒng)的核心,它的選擇將對(duì)整個(gè)控制系統(tǒng)產(chǎn)生決定性的影響,。一般應(yīng)從以下幾個(gè)方面考慮微處理器是否符合控制系統(tǒng)的要求:字長(zhǎng),、指令的種類和數(shù)量、內(nèi)部寄存器的種類數(shù)量,、微處理器的速度,、中斷處理能力以及微處理器的外圍電路配套等。對(duì)于外圍器件的來源,、軟件的運(yùn)行等也是設(shè)計(jì)人員必須考慮的因素,,因?yàn)槠渖婕暗秸麄€(gè)系統(tǒng)實(shí)時(shí)控制能力以及硬件和應(yīng)用程序的分開。
Cypress MicroSystems,Inc生產(chǎn)的PsoC是新一代功能強(qiáng)大的8位可配置微控制器,。PsoC微控制順片內(nèi)有8根獨(dú)立的輸入和輸出總線,,分別與數(shù)字和模block相連。其內(nèi)部可用的block資源包含:4個(gè)基本類型和4個(gè)通信類型的數(shù)字block,,各有3個(gè)CT,、SCA和SCB類型模擬block。使用這些資源可以配置成不販功能模塊,,用以實(shí)現(xiàn)微控制器標(biāo)準(zhǔn)外圍器件的功能,。
使用基本類型數(shù)字block可配置:
*計(jì)數(shù)器(counter);
*定時(shí)器(timer),;
*脈寬調(diào)制(PWM),;
*循環(huán)冗余碼校驗(yàn)(CRC)串行接收(serial receiver)。
使用通信類型數(shù)字block可配置:
*基本數(shù)字block,;
*串行發(fā)送(serial transmitter);
*串行接收(serial receiver);
*SPI主端(SPI Master);
*SPI從端(SPI Slave),。
使用模擬block可配置:
*多極濾波器(multi-pole filters);
*放大器(gain stages);
*數(shù)模轉(zhuǎn)換(DACs);
*模數(shù)轉(zhuǎn)換(ADCs)。
在模塊功能設(shè)計(jì)方面,,Cypress公司把各種常用處理器的外圍器件作為設(shè)計(jì)Module的標(biāo)準(zhǔn),,把芯片內(nèi)數(shù)字和模擬block資源組配成標(biāo)準(zhǔn)的功能模塊(module),并把這些功能模塊存儲(chǔ)在器件庫中,。用戶通過使用其提供的集成開發(fā)平臺(tái)(IDE),,調(diào)用這些功能模塊、設(shè)定模塊時(shí)鐘輸入,,配置全局變量和局部變量,,設(shè)定用戶功能參數(shù),完成功能模塊的配置,。另外,,這些功能模塊還可以相互連接,以完成更加復(fù)雜的功能,。因此,,通過合理的配置數(shù)字和模擬block就可以在片內(nèi)實(shí)現(xiàn)大部分外圍器件的工作。并且,,由于設(shè)定的參數(shù)量存儲(chǔ)在片內(nèi)Flash中,,因此,無論是在設(shè)計(jì)之初,,還是在產(chǎn)品應(yīng)用現(xiàn)場(chǎng),,工程師均通過軟件重新配置數(shù)字和模擬block參數(shù),從而增加/刪除功能模塊,,定義輸入/輸出引腳,,完成硬件升級(jí),。這就是可編程嵌入式片上系統(tǒng)的動(dòng)態(tài)重新配置能力(Dynamic ReConfigurability),。因此,,可配置片上系統(tǒng)(PSoC)允許用戶根據(jù)自己的需求,定義整個(gè)系統(tǒng)所需要的功能模塊的種類和數(shù)量,,分配芯片的資源,,完成芯片內(nèi)部的功能配置。
對(duì)于本控制系統(tǒng)來說,,可以利用其內(nèi)部的多個(gè)定時(shí)器功能模塊,,完成各個(gè)動(dòng)作之間的間隔和定時(shí),從及復(fù)雜的邏輯關(guān)系,;利用A/D,、PGA模塊,實(shí)現(xiàn)鍵盤輸入等功能,;利用液晶模塊,,實(shí)現(xiàn)參數(shù)的顯示等功能;利用PsoC具有I/O多的特點(diǎn),,可以方便地實(shí)現(xiàn)對(duì)多個(gè)開關(guān)信號(hào)量的控制,。因此,利用PsoC就可以實(shí)現(xiàn)使用一塊芯片來配置多種不同外圍元器件微控制器,。建立一種可配置控制器,,可以實(shí)現(xiàn)從確定系統(tǒng)功能開始,到軟/硬件劃分,,并在片內(nèi)完成整個(gè)選色控制器的設(shè)計(jì)過程,。
本系統(tǒng)使用PSoC微控制器具有三個(gè)明顯優(yōu)勢(shì):①通過使用數(shù)字和模擬block配置不同的外圍器件,大量的外圍器件可以設(shè)計(jì)成SoC,;②通過使用內(nèi)部總線連接用戶所選的功能,,用戶可以建立實(shí)際系統(tǒng)信號(hào)鏈,減少大量的外部線路,,甚至可以重新分配輸入/輸出引腳,,幫助優(yōu)化電路板的布局;③最大的益處是它可以實(shí)時(shí)重新定義模塊功能,,迅速完成硬件升級(jí),,能夠適應(yīng)非常復(fù)雜的實(shí)時(shí)控制需求,同時(shí)增強(qiáng)系統(tǒng)的可靠性和抗干擾能力,。
1.2 確定總體控制方案
選色控制方式是一種典型的順序控制方式,。順序控制是工業(yè)自動(dòng)控制系統(tǒng)中一種常見的控制方式,其控制系統(tǒng)一般具有以下一些特性:開關(guān)信號(hào)量多,、定時(shí)范圍大,、邏輯關(guān)系復(fù)雜,、可靠性要求高等。因此,,在總體方案設(shè)計(jì)時(shí)必須考慮其控制特點(diǎn),。
PSoC微處理器的所有輸入/輸出引腳都可以申請(qǐng)中斷,各個(gè)內(nèi)部數(shù)字和模擬模塊也可以申請(qǐng)中斷,。因此本系統(tǒng)可以根據(jù)要求,,方便靈活地申請(qǐng)執(zhí)行多個(gè)中斷。
經(jīng)過對(duì)上述各項(xiàng)認(rèn)真分析后,,就可以畫出整個(gè)系統(tǒng)的概略框圖,。本選色控制系統(tǒng)是由存儲(chǔ)器、輸入/輸出電路,、液晶顯示模塊,、鍵盤電路等部件構(gòu)成,其系統(tǒng)組成如圖1所示,。
1.3 具體硬件設(shè)計(jì)方案
進(jìn)入具體設(shè)計(jì)階段,,必須認(rèn)真考慮和反復(fù)權(quán)衡硬件和軟件的分工及比例。
硬件和軟件設(shè)計(jì)過程必須同時(shí)進(jìn)行,,兩者相輔相成,。對(duì)于本控制系統(tǒng)的設(shè)計(jì)來說,由于大部分外圍器件的功能是在微控制器片內(nèi)實(shí)現(xiàn)的,,因此,,外部硬件的主要工作集中在輸入/輸出接口設(shè)計(jì)上,而輸入/輸出接口設(shè)計(jì)又往往和控制程序交織在一起,。此外,,存儲(chǔ)器的連接和擴(kuò)充也是必做的工作。
硬件設(shè)計(jì)過程中,,器件應(yīng)注意篩選,,在布線和安排時(shí),注意制作技術(shù)和裝配技術(shù),,以克服電氣干擾,。下面就是具體的硬件設(shè)計(jì):在單片配備8位液晶顯示器,2×4的鍵盤,,8KB的存儲(chǔ)器,。輸入/輸出都采用光電隔離,每一路輸出還經(jīng)過功率放大,。
(1)PSoC微控制器
PSoC微控制器控制系統(tǒng)中最主要的部件,,它完成對(duì)輸入信號(hào)的判斷和邏輯運(yùn)算,產(chǎn)生時(shí)序控制信號(hào),,對(duì)PSoC微控制器的配置可以通過其系統(tǒng)提供的IDE集成開發(fā)平臺(tái)上的圖形化工具來完成,。選擇本控制系統(tǒng)所需的計(jì)時(shí)器,、放大器、液晶等功能模塊,,配置其內(nèi)部參數(shù),,指定其輸入與輸出關(guān)系,主,、輸出引腳,。在全局變量部分要配置CPU的工作頻率,、系統(tǒng)時(shí)鐘,、中斷、電荷泵以及其它特性,,以此完成PSoC微控制器片內(nèi)配置,。
(2)存儲(chǔ)器
存儲(chǔ)器用來存儲(chǔ)工作參數(shù)和用戶應(yīng)用程序。隨機(jī)存儲(chǔ)器有動(dòng)態(tài)隨機(jī)存儲(chǔ)器DRAM和靜態(tài)隨機(jī)存儲(chǔ)器SRAM兩種,。DRAM雖然價(jià)格低,,但它需要不斷刷新。PSoC單片機(jī)沒有刷新功能,,為了使用DRAM,,不得不增加刷新電路。這樣總的價(jià)格并不低,,且使電路復(fù)雜化,,可靠性降低,因此本系統(tǒng)中采用SRAM——6264,。
當(dāng)6264的CE1為高電平或CE2為怦時(shí)時(shí),,6264處于低功耗的保持狀態(tài),此時(shí)流過的電源電流為維持電流,,只有μA級(jí),。在保持狀態(tài)的情況下,VCC可降至3V左右,,內(nèi)部所存儲(chǔ)數(shù)據(jù)不會(huì)丟失,。由此可見,只要在掉電之后保持CE1為高,,并保持VCC大于3V,,就可保持RAM中所存儲(chǔ)數(shù)據(jù)不變,且消耗VCC的電流很小,。由此可以建立數(shù)據(jù)存儲(chǔ)保護(hù)電路,。
(3)液晶模塊
字符型液晶顯示模塊是一類專用于顯示字母、數(shù)字,、符號(hào)等的點(diǎn)陣型液晶顯示模塊,。字符型液晶顯示驅(qū)動(dòng)控制器廣泛應(yīng)用于字符型液晶顯示模塊上,。目前PSoC微控制器內(nèi)液晶模塊僅支持HD44780U顯示驅(qū)動(dòng)控制器。
(4)輸入電路
單片機(jī)只能接受0~5的邏輯電路平信號(hào),,而現(xiàn)場(chǎng)工作信號(hào)是按鈕,、行程開關(guān)。輸入電路完成電平轉(zhuǎn)換任務(wù),,同時(shí)為了系統(tǒng)的安全和可靠,,還要考慮信號(hào)的濾波和隔離問題。
本系統(tǒng)采用的是光電隔離及電平轉(zhuǎn)換電路,。光電耦合器以光電轉(zhuǎn)換原理傳輸信息,,它不僅使信息發(fā)出端(收側(cè))與信息接收并輸出端(二次側(cè))是電絕緣的,從而對(duì)地電位差干擾有很強(qiáng)的抑制能力,,而且有很強(qiáng)的抑制電磁干擾能力,,且速度高、價(jià)格低,、接口簡(jiǎn)單,,因而得到廣泛的應(yīng)用。光電耦合器的一次側(cè)都是發(fā)光二極管,,但是二次側(cè)側(cè)則有多種結(jié)構(gòu),,如光敏二極管、光敏晶體管等,,因而就有二極管-二極管光電耦全器,、二極管一晶體管光電耦全器等多種型號(hào)的光電耦全器。本系統(tǒng)選用TPL521-4,,它在同一個(gè)封裝內(nèi)4個(gè)相同而獨(dú)立的光電耦合器,。TPL521主要用于工業(yè)控制中,其速度不高,。
(5)輸出電路
輸出電路主要包括兩部分:一是隔離,,二是功率放大。在順序控制系統(tǒng)中,,單片機(jī)輸出的控制信號(hào)常用來控制繼電器等執(zhí)行機(jī)構(gòu),,它們需要較大的功率,因此輸出信號(hào)需要光隔離和放大后才輸出到執(zhí)行機(jī)構(gòu),。
2 織機(jī)選色器的功能設(shè)計(jì)
織機(jī)選色控制器是一個(gè)可以編程的順序控制器,。它有兩個(gè)工作狀態(tài):編程狀態(tài)和運(yùn)行狀態(tài)。編程狀態(tài)的主程序的功能為更新顯示器上顯示的內(nèi)容,、用戶鍵入編輯相應(yīng)的用戶程序,。鍵盤有MOD、TAB,、INC,、DEC,、ENT這5個(gè)鍵,用于輸入程序和參數(shù),。下面介紹這些鍵的功能,。
MOD模式鍵:用于編程狀態(tài)和運(yùn)行狀態(tài)之間的切換。編程狀態(tài)下,,用戶可以完成用戶程序的編輯,;運(yùn)行狀態(tài)下,用于顯示程序執(zhí)行的步驟,。
TAB光標(biāo)移動(dòng)鍵:用于屏幕光標(biāo)的移動(dòng),,隨著光標(biāo)處于不同的變量位置,表明此變量處于編輯狀態(tài),。此變量可以編輯,。
INC增加鍵:在編程狀態(tài)下,按下此鍵,,光標(biāo)所在位置的變量加1。
DEC減少鍵:在編程狀態(tài)下,,按下此鍵,,光標(biāo)所位置的變量減1。
ENT確認(rèn)鍵:變量改變后,,按此鍵確認(rèn)更改,。
為了使織機(jī)選色器能按照用戶輸入的程序執(zhí)行,我們?cè)O(shè)定了固定的程序格式,。用戶按此格式輸入用戶程序,,織機(jī)選色器就可按程序進(jìn)行工作。其格式如下:
程序號(hào) | 段號(hào) | 色號(hào) | 緯數(shù) | 最大段號(hào) |
程序號(hào):表示執(zhí)行或編輯的程序名稱,。
段號(hào):表示程序步的標(biāo)號(hào),。
色號(hào):表示此次選中的顏色。
緯數(shù):表示打緯的次數(shù),。
最大段號(hào):表明程序循環(huán)段數(shù),。
使用以上定義的幾個(gè)鍵,就可以完成用戶程序輸入,。在開機(jī)后處于運(yùn)行狀態(tài)中,,此時(shí)執(zhí)行監(jiān)控中的鍵盤、顯示器管理程序,,輸入信號(hào)監(jiān)控,。根據(jù)輸入信號(hào)執(zhí)行用戶預(yù)先存儲(chǔ)在存儲(chǔ)器內(nèi)的程序。
3 具體軟件設(shè)計(jì)方案
用戶通過鍵盤編寫用戶程序,,為此在外部存儲(chǔ)空間中預(yù)留一定的存儲(chǔ)空間供用戶存儲(chǔ)用戶程序,。用戶可以隨時(shí)調(diào)用,、查看、編輯自己的選色程序,。具體做法根據(jù)程序號(hào)確定高位址,,根據(jù)段號(hào)確定低位地址,然后向不同字節(jié)寫入色號(hào)和緯數(shù)的信息,,最大段號(hào)存放在一個(gè)固定的地址中,。在工作過程中,同樣根據(jù)程序號(hào)確定高位地址,,根據(jù)段號(hào)確定低位地址,,然后讀出存放在不同字節(jié)內(nèi)的色號(hào)和緯數(shù)信息。
4 MCU內(nèi)部資源配置
和普通的ASIC設(shè)計(jì)相比較,,PsoC的設(shè)計(jì)首先必須完成片內(nèi)功能模塊的設(shè)計(jì),。因此,可配置片上系統(tǒng)設(shè)計(jì)流程和集成開發(fā)環(huán)境上也與通用的ASIC設(shè)計(jì)流程及集成開發(fā)環(huán)境有所不同,。PSoC設(shè)計(jì)必須首先完成芯片內(nèi)部資源的規(guī)劃,,其片內(nèi)資源設(shè)計(jì)流程具體為:
*確定系統(tǒng)需求;
*選擇用戶模塊,;
*放置用戶模塊,;
*設(shè)置全局變量和用戶模塊參數(shù);
*定義輸出引腳,;
*產(chǎn)生應(yīng)用代碼,;
*編輯應(yīng)用代碼。
因此,,在集成開發(fā)環(huán)境內(nèi)按照設(shè)計(jì)流程完成設(shè)備編輯器參數(shù)配置,。
圖2
選擇Timer16、Timer8,、PGA,、SAR6、LCD模塊,,如圖2所示,。IDE內(nèi)含用戶模塊描述、說明,,以及用戶指導(dǎo)/代碼摘錄,、閱讀模塊的用戶指導(dǎo)信息,以供配置使用,。數(shù)字模塊放置一般沒有什么限制,,盡量使用基本類型的數(shù)字模塊;模擬模塊只能放置在允許的位置。
4.2 設(shè)置全局變量和用戶模塊參數(shù)
全局資源
24V1=16 ,;配置系統(tǒng)時(shí)鐘一
24V2=16 ,;配置系統(tǒng)時(shí)鐘二
Timer16模塊
Clock=CPU_32KHz ;時(shí)鐘選擇
Capture=Low ,;捕捉功能關(guān)
Period=65535 ;配置period
CompareValue=Terminal Count
,;指定中斷類型
InterruptType=Terminal Count
;指定中斷類型
Output=None
Timer8模塊
Clock=CPU_32KHz ;時(shí)鐘選擇
Capture=Low ;捕捉功能關(guān)
Period=255 ,;配置period
CompareValue=Terminal Count
;指定中斷類型
InterruptType=Terminal Count
,;指定中斷類型
Output=None
PGA模塊
Gain=1 ;單元增益
Input=AnalogColumn_InputMUX_3
,;信號(hào)輸入
Reference=AGND ;參考地
Analogbus=Disable ,;輸出總線
AnalogColumn_InputMUX_3=PORT_0_2;輸入總線
Specify Pinout P0[2]=Analog_Input
,;模擬輸入引腳
SAR6模塊
SignSource=ACA03 ;信號(hào)選擇
ClockPhase=Normal ,;時(shí)鐘選擇
LCD模塊
LCDPort=Port_0 ;數(shù)據(jù)口
BarGraph=Enable ,;啟用
4.3 定義輸出引腳
輸入/輸出引腳指定
P2[2]=StdCPU RisingEdge(Int);選色
P2[3]=StdCPU DisablrInt ;倒棕輸入
P2[4]=StdCPU DisablrInt ;加緯
P2[5]=StdCPU DisablrInt ;減緯
P1[1]=AnalogColumn_InputMUX_3(High Z)鍵盤輸入
4.4 產(chǎn)生應(yīng)用代碼
在完成功能模塊的參數(shù)配置工作后,,系統(tǒng)就自動(dòng)生成應(yīng)用程序接口API和中斷服務(wù)程序ISR,并且自動(dòng)插入到工程項(xiàng)目中,。設(shè)計(jì)工程師可在此基礎(chǔ)之上填寫應(yīng)用代碼,,完成用戶程序的編制。
結(jié)語
總的來說,,在基于PSoC的選色控制系統(tǒng)中,除了個(gè)別無法集成的器件以外,,選色控制系統(tǒng)所應(yīng)用的大部分器件均可以集成到PSoC芯片中去,,應(yīng)用系統(tǒng)電路板變得很簡(jiǎn)潔,這對(duì)于減小系統(tǒng)的體積和功耗,、提高系統(tǒng)的可靠性都是非常有利的,。與傳統(tǒng)解決方案相比,可配置嵌入式片上系統(tǒng)提供的解決方案具有無法比擬的優(yōu)越性,。