陸政
摘要:跟隨時代發(fā)展的腳步,科技的快速發(fā)展,嵌入式技術(shù)的應用在生活中越來越普遍,涉及我們生活中的各個領(lǐng)域,如農(nóng)業(yè)活動的生產(chǎn),水質(zhì)監(jiān)測管理,環(huán)境工程和餐廳點菜等各個領(lǐng)域之中。其中,關(guān)系到我們?nèi)粘I畹牟蛷d點菜系統(tǒng)越來越普遍。本次研究開發(fā)的課題是基于ARM的無線餐廳點菜系統(tǒng)的實現(xiàn),使用Smart210SDK1305開發(fā)板,用于方便我們?nèi)粘I钪性诓蛷d就餐時的點菜,加菜,埋單等各項服務。當PDA終端提交點菜信息時,信息會自動通過無線接口迅速地將點菜信息傳送給ARM開發(fā)板的無線串口,無線串口通過數(shù)據(jù)轉(zhuǎn)換將獲得到的信息進行轉(zhuǎn)換后,提交給廚房的服務器終端。通過此種方法來實現(xiàn)手持終端點菜與服務器端確認菜單的功能。
關(guān)鍵詞:嵌入式;ARM;無線;點菜系統(tǒng)
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2016)29-0273-03
1無線餐廳點菜系統(tǒng)的研究意義
無線餐廳點菜設(shè)備,通過客人點菜形成初步菜單,通過無線的渠道將菜單信息通過無線發(fā)送到后廚。無線餐廳點菜設(shè)備的出現(xiàn)大大簡化了以往紙質(zhì)的開臺,點菜,加菜,退菜,結(jié)賬等服務。節(jié)約了人力的成本,提高了餐廳服務效率與質(zhì)量,是具有很大研究意義的一個嵌入式設(shè)備。
嵌入式系統(tǒng)的主要特點:①專用的計算機系統(tǒng);②嵌入式系統(tǒng)必須滿足環(huán)境的要;③嵌入式系統(tǒng)具有較長的生命周期;④嵌入式系統(tǒng)的實時l生和可靠性;⑤軟件代碼固化;⑥嵌入式系統(tǒng)必須滿足對象系統(tǒng)的控制要求。⑦嵌入式系統(tǒng)需要專業(yè)的開發(fā)工具和方法進行設(shè)計。
2系統(tǒng)總體設(shè)計
2.1系統(tǒng)需求分析
由于餐廳點菜時,用一根很長的數(shù)據(jù)線將手持終端與服務器接收終端相連的話,會導致線路復雜,不方便挪動和成本高等不方便因素。關(guān)于無線通信的無線點菜系統(tǒng)的實現(xiàn)利用了嵌入式的低價格,費用低和功耗小等優(yōu)點對實現(xiàn)無線餐廳點菜有著重大的研究意義,也是有很好的利用價值的。因此,根據(jù)論文的設(shè)計與理論實現(xiàn)無線餐廳點菜系統(tǒng)的原理,我設(shè)計出該系統(tǒng)的總體結(jié)構(gòu)圖如圖1所示。
依據(jù)無線餐廳點菜系統(tǒng)的在技術(shù)性上的開發(fā)和實際使用中的各種情況的分析,要對該無線餐廳點菜系統(tǒng)進行需求分析,需求分析包含系統(tǒng)功能分析和系統(tǒng)性能分析:
1)系統(tǒng)功能需求分析
根據(jù)無線餐廳點菜系統(tǒng)的設(shè)計在應用中的具體狀況和特點,本次論文的無線餐廳點菜系統(tǒng)要主要包括如下幾個方面的功能特點:
①能夠進行點菜,退菜,結(jié)賬;②運用無線通信技術(shù)實現(xiàn)手持終端點菜的數(shù)據(jù)信息傳送到后廚的服務器終端;③使用起來簡單易懂。
2)系統(tǒng)性能需求分析
該無線餐廳點菜系統(tǒng)是一款針對餐廳內(nèi)的點菜方便的,因此在實現(xiàn)此系統(tǒng)的性能時要注意如下幾個方面:
①系統(tǒng)的實時性;②系統(tǒng)的穩(wěn)定性;③系統(tǒng)的可擴展性;④系統(tǒng)的易維護性。
2.2系統(tǒng)軟件總體結(jié)構(gòu)
無線餐廳點菜系統(tǒng)中LCD模塊利用圖形界面可以有收集用戶點餐信息的功能,無線收發(fā)模塊有將用戶點餐后的菜單在發(fā)送給后堂廚房時,起到了數(shù)據(jù)轉(zhuǎn)換的功能。它們通過無線路由器組成的無線局域網(wǎng)與后堂的服務器終端進行數(shù)據(jù)通信。其中軟件的結(jié)構(gòu)圖如圖2所示。
根據(jù)圖2可以知道,在ARM板上的軟件的獲得過程是在本地系統(tǒng)中得到的,之后通過所設(shè)定的文件系統(tǒng)將開發(fā)好的應用軟件進行編譯后的程序下載到ARM開發(fā)板上再運行。通過開發(fā)板的運行,得到用餐者的點菜,加菜,退菜,結(jié)賬信息,并在操作完成后通過無線模塊的TCP/IP協(xié)議將數(shù)據(jù)轉(zhuǎn)換后發(fā)送到后堂服務器終端。
本次研究課題是基于ARM的無線餐廳點菜系統(tǒng),在餐廳點菜中將起到重大的變革作用,可以很好的改善餐廳點菜效率的底下,結(jié)賬速度慢等一系列問題。
2.3交叉編譯環(huán)境的建立
在嵌入式系統(tǒng)上進行編寫代碼,然后運行,這幾乎是個不可能事件。但是,我們有辦法解決這個問題,那就是采用交叉編譯的方式。
所謂交叉編譯就是,在我們編程計算機上裝上一個虛擬機,在虛擬機內(nèi)裝上一個我們即將在嵌入式開發(fā)板上裝人的操作系統(tǒng),在此系統(tǒng)內(nèi)進行編寫代碼,最后通過交叉編譯工具將我們所編寫的代碼轉(zhuǎn)換成能夠在嵌入式開發(fā)板上直接運行的二進制代碼形式,再通過一定的傳輸工具,將所生產(chǎn)的二進制代碼傳輸?shù)角度胧介_發(fā)板的文件系統(tǒng)的指定位置。交叉編譯環(huán)境示意圖如圖3所示。
所需資源:linux-2.6.10.tar.gz glibc-2.3.2.tar.gz binutils-2.15.tar.bz2
glibc-linuxthreads-2.3.2.tar.fz gcc-3.3.6.tar.gz
3嵌入式系統(tǒng)的移植與實現(xiàn)
嵌入式Linux的移植涉及:BootLoader的移植,嵌入式Linux操作系統(tǒng)內(nèi)核的移植與嵌入式Linux操作系統(tǒng)根文件系統(tǒng)的移植。
3.1BootLoader的移植
U-boot的啟動分為兩個過程:第一個過程是將各種不同的硬件設(shè)備進行初始化,為下一步準備RAM空間,保存信息,堆??臻g的設(shè)置等工作;第二個過程是在第一個過程的基礎(chǔ)上加載操作系統(tǒng)的內(nèi)核和根文件系統(tǒng),一般是使用C語言設(shè)計該部分內(nèi)容,因為C語言的主要特點是讀性和移植性。U-boot的啟動流程如圖4所示。
3.2嵌入式Linux內(nèi)核的移植
內(nèi)核是所有嵌入式Linux系統(tǒng)的核心軟件,內(nèi)核移植是一個相當復雜的任務,也是基于ARM的嵌入式開發(fā)過程中十分重要的一個環(huán)節(jié)。內(nèi)核移植過程包括內(nèi)核的配置、內(nèi)核的編譯和內(nèi)核下的載。
1)內(nèi)核配置:
①修改Makefile:修改根目錄下Makefile中交叉編譯器的版本和所要使用的體系結(jié)構(gòu)。
②設(shè)置NAND Flash分區(qū):建立Flash分區(qū)表,用來劃分內(nèi)存空間的,以及每個分區(qū)的起始地址與空間大小。
③配置內(nèi)核選項:依照所使用的開發(fā)板的配置文件進行相應的配置。
2)內(nèi)核編譯:
①清除冗余文件:首先進人根目錄,清除之前編譯過而殘留下來的.config和.o文件。
②編譯內(nèi)核映像和模塊:make zImage:編譯生成gzip壓縮形式的image。
make bzImage:編譯生成較大些的內(nèi)核。比上面一條命令生成的大。
make modules:編譯在配置時選擇的模塊。
make modules_install:將make modules生成的模塊文件復制到相應的目錄。
③安裝模塊
#make modules_install
默認情況下模塊被安裝到/lib/modules目錄下。
3)內(nèi)核下載
首先在開發(fā)使用的宿主機上建立一個tftp服務。然后使用超級終端或DNW工具啟動目標板。
#tftp 0x30008000 zImage
3.3文件系統(tǒng)移植與實現(xiàn)
文件系統(tǒng)是文件存放在存儲設(shè)備上的組織方法。主要體現(xiàn)在對文件和目錄的組織上,UNIX系統(tǒng)中,文件系統(tǒng)是最基本的資源。在內(nèi)核和文件系統(tǒng)之間通過制定一個標準的接口實現(xiàn),在不同文件結(jié)構(gòu)之間可以有不同的文件系統(tǒng)的接口來實現(xiàn)數(shù)據(jù)的交換。常見的文件系統(tǒng)目錄如圖5所示:
制作根文件系統(tǒng):
①建立lu設(shè)備的臨時掛載點:#mkdir/mnt/lu
②建立一個大小為15MB的臨時文件:#dd if=/dev/zero of=/tmp/lu_tmp bs=1k count=15360
③聯(lián)接設(shè)備與臨時文件:#losetup/dev/lu0/tmp/lu_tmp
④將/dev/lu0格式化位ext2文件系統(tǒng):#mke2fs-m0/dev/lu0
⑤把虛擬盤掛載在節(jié)點/mnt/lu上:#mount-t ext2/dev/lu0/mnt/lu
⑥用cp命令將需要的文件復制到虛擬盤上。
⑦卸載文件系統(tǒng),得到文件系統(tǒng)映像:#cd/mnt/lu#un-mount/mnt/lu
⑧壓縮文件系統(tǒng)映像:#gzip/tmp/lu_tmp>/tftpboot/ram-disk.gz
4服務器端詳細設(shè)計
服務器端是用來采集終端設(shè)備關(guān)于點菜,加菜,退菜等操作的菜單信息采集。并且實時將手持終端發(fā)送到的數(shù)據(jù)保存到數(shù)據(jù)庫中,數(shù)據(jù)庫經(jīng)過處理后將處理后的數(shù)據(jù)通過無線收發(fā)模塊進行傳送給指定的IP終端。
服務器端的主程序共有兩個子模塊。如圖6所示,第一個子模塊分負責數(shù)據(jù)采集、數(shù)據(jù)保存處理;第二個子模塊負責監(jiān)聽來自手持終端的命令,及返回請求數(shù)據(jù)。
主程序代碼如下所示。
由以上代碼可以看出我創(chuàng)建了兩個子進程分別負責采集和監(jiān)聽命令。主進程不做具體事宜只負責進程不被殺死。
5結(jié)束語
現(xiàn)在人們的日常生活中的各種便捷式的電子設(shè)備的開發(fā)都越來越離不開基于ARM的開發(fā)了。本次開發(fā)過程簡單上看是在做一個基于ARM的無線餐廳點菜系統(tǒng),實際上基于ARM的開發(fā)的大多套路都是和我們此次開發(fā)的過程是類似的。區(qū)別僅僅在于具體的軟件代碼實現(xiàn)。
此次開發(fā)的工期不長,由于個人在專業(yè)方面的知識的限制,很多地方可能都有不完善的地方,有待大家的完善與指正。