王志誠(chéng)
WANG Zhi-cheng
(北新集團(tuán)建材股份有限公司,北京 100096)
高校就餐擁擠問(wèn)題在諸如北京,上海等大城市中尤為突出。學(xué)生多,食堂少,就餐時(shí)間過(guò)于集中,再加上學(xué)校硬件建設(shè)經(jīng)費(fèi)緊張,同時(shí)占地面積也有相當(dāng)?shù)木窒?。因此要單?dú)從食堂擴(kuò)建方面來(lái)解決這個(gè)矛盾恐怕還尚需時(shí)日。而通過(guò)完善食堂就餐系統(tǒng),發(fā)揮現(xiàn)有資源的最佳效率,便可以相當(dāng)程度上緩解這一問(wèn)題。
另外,目前各高校食堂對(duì)不同時(shí)段的食物供應(yīng)量沒(méi)有科學(xué)的評(píng)估機(jī)制,多數(shù)是憑借主觀經(jīng)驗(yàn)。這樣不僅會(huì)造成大量不必要的浪費(fèi),也不能很充分的滿足來(lái)自全國(guó)各地同學(xué)的差異化需求。
圖1 系統(tǒng)硬件結(jié)構(gòu)圖
ARM7系列微處理器為低功耗的32位RISC處理器,適用于對(duì)價(jià)位和功耗要求較高的產(chǎn)品應(yīng)用中。ARM7系列微處理器系列具有以下特點(diǎn):極低的功耗;提供0.9MIPS/MHz 的三級(jí)流水線結(jié)構(gòu)( 取指、譯碼、執(zhí)行);最高主頻可達(dá)到130Mb/s;代碼密度高并支持16 位的Thumb 指令集;對(duì)操作系統(tǒng)的支持廣泛,包括Windows CE、Linux、μC/OSⅡ等[1]。
本系統(tǒng)采用了MagnaChip公司的HMS30C7202作為系統(tǒng)控制和數(shù)據(jù)處理的核心,HMS30C7202是一種高性價(jià)比16/32位RISC微控制器,主要特點(diǎn)如下:
1)16/32位RISC處理器核ARM720T為低功耗、高性能的16/32 位核,最適合用于對(duì)價(jià)格及功耗敏感的應(yīng)用場(chǎng)合。
2)HMS30C7202對(duì)ARM720T核擴(kuò)展了一系列完整的通用外圍器件。片上資源包括4個(gè)UART通道;2個(gè)CAN總線口;4個(gè)32位定時(shí)器;2路可編程PWM;32 位實(shí)時(shí)時(shí)鐘;多路實(shí)時(shí)中斷控制器;
DRAM/SDRAM控制器;ROM/SRAM和FLASH控制器;一個(gè)外部存儲(chǔ)器控制器等片內(nèi)的邏輯控制電路。
3)軟件支持方面具有配套的代碼編輯調(diào)試環(huán)境ADS1.2和JTAG在線調(diào)試功能,使得HMS30C7202芯片軟件可以直接用C編寫,這就使μC/OS-II的植入成為可能。
在主控制模塊中,分別需要使用3.3V、1.8V和1.25V的直流穩(wěn)壓電源,其中HMS30C7202片上外設(shè)需要3.3V電源,內(nèi)核需要1.8V輸入電壓,另外部分器件需要1.25V的電源。為此,需要設(shè)計(jì)相應(yīng)的電源轉(zhuǎn)換電路,以獲得所需要的3.3V、1.8V和1.25V 電壓。系統(tǒng)所需的各個(gè)電壓產(chǎn)生電路分別如圖2、圖3所示。
圖2 3.3V電壓產(chǎn)生電路
圖3 1.8V電壓產(chǎn)生電路
晶振電路用于向CPU及其他電路提供工作時(shí)鐘,在該系統(tǒng)中HMS30C7202采用無(wú)源晶振。根據(jù)HMS30C7202的最高工作頻率以及PLL電路的工作方式,選擇10MHz 的無(wú)源晶振,10MHz的頻率經(jīng)
圖4 控制系統(tǒng)時(shí)鐘電路接線圖
過(guò)HMS30C7202片內(nèi)的PLL電路倍頻后,最高可以達(dá)到60MHz。片內(nèi)的PLL電路兼有頻率放大和信號(hào)提純的功能,因此系統(tǒng)可以以較低的外部時(shí)鐘信號(hào)獲得較高的工作頻率,并降低因高速開(kāi)關(guān)時(shí)鐘所造成的高頻噪聲[2]。此外,本系統(tǒng)還采用了片外獨(dú)立時(shí)鐘芯片DS1302,其電路連接如圖4所示。
現(xiàn)在流行的串行時(shí)鐘電路很多,如DS1302、DS1307、PCF8485等。這些電路的接口簡(jiǎn)單、價(jià)格低廉、使用方便,被廣泛地采用。本系統(tǒng)使用的實(shí)時(shí)時(shí)鐘電路DS1302是DALLAS公司的一種具有涓細(xì)電流充電能力的電路,主要特點(diǎn)是采用串行數(shù)據(jù)傳輸,可為掉電保護(hù)電源提供可編程的充電功能,并且可以關(guān)閉充電功能。
本設(shè)計(jì)中使用的AT24C512是Atmel公司生產(chǎn)的64KB串行電可擦的可編程存儲(chǔ)器,其內(nèi)部有512頁(yè),每一頁(yè)為128字節(jié),任一單元的地址為16位,地址范圍為0000~0FFFFH。它采用8引腳封裝,具有結(jié)構(gòu)緊湊、存儲(chǔ)容量大等特點(diǎn),可以在2線總線上并接4片芯片,特別適用于具有大容量數(shù)據(jù)存儲(chǔ)要求的數(shù)據(jù)采集系統(tǒng),因此在測(cè)控系統(tǒng)中被大量采用[3]。IIC總線與AT24C512的硬件連接圖如圖5所示。
圖5 系統(tǒng)存儲(chǔ)電路接線圖
CAN通訊接口通過(guò)單片機(jī)的數(shù)據(jù)口與CAN通訊電路連接來(lái)進(jìn)行設(shè)計(jì),實(shí)現(xiàn)單片機(jī)與CAN總線之間的通信,其中CAN通訊電路部分主要包括:CAN-bus控制器、CAN-bus收發(fā)器、高速光電隔離等部分,如圖6所示。
圖6 CAN總線通訊系統(tǒng)結(jié)構(gòu)圖
軟件設(shè)計(jì)首先要進(jìn)行μC/OS-II操作系統(tǒng)和MiniGUI人機(jī)界面的移植,然后是用戶界面設(shè)計(jì)和編程。
μC/OS-II是專為微控制器系統(tǒng)軟件開(kāi)發(fā)而設(shè)計(jì)的源代碼公開(kāi)的搶占式實(shí)時(shí)多任務(wù)操作系統(tǒng)內(nèi)核,實(shí)時(shí)性和穩(wěn)定性都很好,很適合數(shù)據(jù)采集系統(tǒng)使用。μC/OS-II主要特點(diǎn)可以概括為以下幾個(gè)方面:公開(kāi)源代碼,代碼結(jié)構(gòu)清晰、明了,注釋詳盡,組織有條理,可移植性好;可裁剪,可固化;內(nèi)核屬于搶占式,最多可以管理60個(gè)任務(wù)。自1992 年的第一版(μC/OS)以來(lái)已經(jīng)有好幾百個(gè)應(yīng)用,是一個(gè)經(jīng)實(shí)踐證明好用且穩(wěn)定可靠的內(nèi)核。目前國(guó)內(nèi)對(duì)μC/OS II 的研究和應(yīng)用都很多[4]。
μC/OS-II內(nèi)核向HMS30C7202中的移植,要合理地修改μC/OS-II的三個(gè)與處理器相關(guān)的文件:OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C。主要是將文件中的匯編指令,改為ARM7的匯編指令,并根據(jù)CPU的特點(diǎn)把文件中寄存器的初值進(jìn)行改寫。
MiniGUI 是一個(gè)輕量級(jí)的圖形用戶界面支持系統(tǒng),具有占用資源少、高性能、高可靠性和可配置等特點(diǎn)。它是我國(guó)開(kāi)發(fā)的,中文支持文檔比較多,大都可以從飛漫公司網(wǎng)站(http://www.minigui.com/)上免費(fèi)獲得。目前已比較成熟,并已應(yīng)用到很多項(xiàng)目的實(shí)際開(kāi)發(fā)中。移植工作主要是兩個(gè)方面:修改配置文件; 將程序運(yùn)行所需的庫(kù)文件和配置文件等添加到嵌入式目標(biāo)板的文件系統(tǒng)中[5]。
圖7 就餐窗口布局平面圖
每一個(gè)窗口都細(xì)化為選菜區(qū)和取菜區(qū),由圍欄隔開(kāi)。其中選菜區(qū)要求同學(xué)們排成一對(duì),每個(gè)人根據(jù)個(gè)人口味在觸摸屏上進(jìn)行選菜,選完菜后取打印憑條,由單向開(kāi)口進(jìn)入取菜區(qū);而取菜區(qū)中由服務(wù)員為同學(xué)們配發(fā)飯菜。這樣的分區(qū)設(shè)計(jì)有效的保證同學(xué)們就餐時(shí)人流在窗口前的單向流動(dòng)性,從而避免了類似“圍城”的沖突。系統(tǒng)實(shí)時(shí)采集并記錄學(xué)生們就餐的各種數(shù)據(jù),如各食堂,樓層,窗口,菜種的售出情況。以便在食堂大屏幕上顯示輸出,指導(dǎo)同學(xué)們有序就餐,避免擁擠。還可以利用這些數(shù)據(jù)進(jìn)行科學(xué)的采購(gòu)和備餐,避免浪費(fèi),降低成本。
根據(jù)系統(tǒng)功能,軟件部分實(shí)現(xiàn)了相應(yīng)的程序設(shè)計(jì)。系統(tǒng)上運(yùn)行中會(huì)首先提示學(xué)生將校園卡插入卡槽中,然后進(jìn)行選菜。這個(gè)過(guò)程會(huì)將菜品一一顯示在LCD屏幕上面,學(xué)生可以瀏覽各個(gè)菜品。當(dāng)菜品選擇完畢后,學(xué)生可以通過(guò)觸摸屏點(diǎn)擊菜品圖片,再選擇數(shù)量。如果不再繼續(xù)選擇的話,就可以拔出校園卡,并取出取菜憑條了。
圖8 系統(tǒng)人機(jī)接口流程圖
本就餐系統(tǒng)具有以下特點(diǎn):
1) 相對(duì)于混合化窗口,分區(qū)窗口秩序井然,易于維持就餐秩序。各分區(qū)分工明確,幾乎不會(huì)出現(xiàn)擁堵的情況,就餐效率大幅提高;
2) 分區(qū)后的選菜區(qū)無(wú)需人工,實(shí)行自助選菜,節(jié)省人力;
3) 自助選菜降低了服務(wù)員的壓力,不需要記下每個(gè)人點(diǎn)的菜,也避免了人工錯(cuò)誤的出現(xiàn);
4) 由于選菜區(qū)實(shí)行自助服務(wù),占用空間小,故一個(gè)窗口可以根據(jù)具體情況同時(shí)開(kāi)設(shè)兩個(gè)甚至多個(gè)選菜區(qū),較舊系統(tǒng)中一個(gè)服務(wù)員負(fù)責(zé)一個(gè)窗口更靈活;
5) 這種自助選菜和打印憑條機(jī)制可以實(shí)時(shí)采集并存儲(chǔ)各種數(shù)據(jù),如每日,每時(shí)段,每個(gè)窗口,每種菜的銷售狀況等,這是在人工服務(wù)下很難辦到的。
本信息化食堂就餐系統(tǒng)是基于嵌入式技術(shù)的食堂就餐系統(tǒng)。一方面指示并協(xié)調(diào)學(xué)生就餐秩序,緩解集中就餐的壓力;另一方面,則可以通過(guò)后臺(tái)對(duì)系統(tǒng)記錄下的各種就餐數(shù)據(jù)分析有效的輔助食堂更科學(xué)的定時(shí)定量備餐。本設(shè)計(jì)對(duì)目前北京等大城市高校擁擠不堪的就餐秩序,以及因備餐不合理所造成的食物浪費(fèi)現(xiàn)象會(huì)帶來(lái)極大的改善。
[1]Frank Vahid、Tony Givargis,著,駱麗譯.嵌入式系統(tǒng)設(shè)計(jì)[M].北京航空航天大學(xué)出版社,2004,(9):1-22.
[2]王田苗.嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開(kāi)發(fā)[M].清華大學(xué)出版社,2003,(7):1-34.
[3]楊光友.嵌入式微處理器ARM7存儲(chǔ)器接口設(shè)計(jì)[J].微計(jì)算機(jī)信息,2004,20(9):75-76.
[4]王劍峰,馬艷萍,劉云.μC/OS在ARM7處理器的移植與測(cè)試應(yīng)用[J].青島科技大學(xué)學(xué)報(bào),2005,(10):443-447.
[5]丁丁,習(xí)勇,魏急波.三種主流嵌入式圖形用戶界面的移植及性能比較[J].電子產(chǎn)品世界,2004,(5):77-79.