左安友,劉廷平,黃 勇
(湖北民族學(xué)院 理學(xué)院,湖北 恩施 445000)
圖1 系統(tǒng)硬件結(jié)構(gòu)圖Fig.1 Hardware structure of the system
隨著我國(guó)經(jīng)濟(jì)快速、穩(wěn)定發(fā)展,各種高層、超高層建筑在各城市如雨后春筍般拔地而起.樓宇結(jié)構(gòu)種類(lèi)、復(fù)雜程度不斷增多和增強(qiáng),樓宇結(jié)構(gòu)介紹成為現(xiàn)代建筑必不可少的組成部分,為滿足這一需要,研制了一種結(jié)構(gòu)簡(jiǎn)單、價(jià)格低廉的樓宇結(jié)構(gòu)介紹系統(tǒng),可以在賓館、醫(yī)院、政府辦公大樓等使用.該系統(tǒng)通過(guò)顯示各樓層平面圖和樓層主要單位的簡(jiǎn)介,把樓宇結(jié)構(gòu)清晰地展現(xiàn)在來(lái)訪者面前.
系統(tǒng)硬件主要由五部分組成:STC12C5A60S2單片機(jī)、SD卡、智能VGA控制板、獨(dú)立鍵盤(pán)、液晶顯示器.系統(tǒng)的硬件結(jié)構(gòu)圖如圖1所示.
該系統(tǒng)工作過(guò)程為:接通電源后開(kāi)始顯示首頁(yè),首頁(yè)包含大樓樓層的主要單位和樓層兩個(gè)部分,來(lái)訪者在首頁(yè)尋找到要去的部門(mén),查詢(xún)相應(yīng)的樓層.每個(gè)鍵代表一層樓,通過(guò)按鍵來(lái)選擇各個(gè)樓層平面圖,平面圖存儲(chǔ)于SD卡中,由智能VGA控制板清屏,然后驅(qū)動(dòng)液晶屏顯示各樓層平面圖.進(jìn)入該樓層平面圖后,出現(xiàn)二級(jí)菜單,該菜單上有該樓層的主要單位及負(fù)責(zé)人的簡(jiǎn)介,若一分鐘內(nèi)沒(méi)有人使用它,單片機(jī)自動(dòng)關(guān)閉顯示器,以達(dá)到節(jié)能目的,當(dāng)下次再有人按按鍵時(shí),液晶顯示器重新啟動(dòng).從顯示主頁(yè)提供的信息來(lái)訪者就可以方便、快捷選擇想要查找的部門(mén)平面圖和了解相關(guān)單位的基本信息.
單片機(jī)是整個(gè)方案的核心,用于讀取SD卡中的樓層平面機(jī)構(gòu)圖、控制液晶顯示器刷屏速度,再綜合考慮性能和成本方面的原因,選用了AT-MEC公司生產(chǎn)的STC12C5A60S2單片機(jī)[1],其特點(diǎn)有:①超強(qiáng)抗干擾,整機(jī)輕松過(guò)2萬(wàn)伏靜電測(cè)試;②速度快,1個(gè)時(shí)鐘/機(jī)器周期,可用低頻晶振,大幅降低EMI;③超低功耗:外部中斷喚醒功耗,0.1 μA,支持下降沿/上升沿/低電平和遠(yuǎn)程喚醒適用于電池供電系統(tǒng);④內(nèi)部集成高可靠復(fù)位電路,外部復(fù)位電路可徹底省掉,當(dāng)然也可以繼續(xù)用外部復(fù)位電路.
在實(shí)驗(yàn)過(guò)程中,曾經(jīng)使用STC89C52單片機(jī),但在調(diào)試時(shí)效果不佳,主要表現(xiàn)在顯示器刷屏速度慢,大約需要30秒左右才把整個(gè)顯示的平面圖展示出來(lái),這樣對(duì)于使用者浪費(fèi)了很多時(shí)間,同時(shí)給人帶來(lái)的方便程度下降,失去了這項(xiàng)設(shè)計(jì)的意義,但換成STC12C5A60S2增強(qiáng)型單片機(jī)后,把晶振換成47Hz時(shí)刷屏速度明顯加快,時(shí)間縮短為5秒左右,這就充分體現(xiàn)了STC12C5A60S2單片機(jī)的特點(diǎn),大幅降低EMI.由于該顯示是一個(gè)長(zhǎng)時(shí)間在各種復(fù)雜環(huán)境的顯示,所以使用了該單片機(jī)超低功耗特點(diǎn),只需電池就可以供電支持下降沿/上升沿/低電平和遠(yuǎn)程喚醒.為了使開(kāi)發(fā)設(shè)備簡(jiǎn)單易用,還利用了該單片機(jī)外部復(fù)位電路可省掉的特點(diǎn).
智能VGA控制器是整個(gè)控制系統(tǒng)的重要部件,智能VGA控制板采用了先進(jìn)的大規(guī)模集成電路,整合了USB2.0、CPLD、FPGA、32位ARM處理器、嵌入式系統(tǒng)等先進(jìn)的技術(shù),專(zhuān)門(mén)針對(duì)單片機(jī)用戶而精心設(shè)計(jì),是一款可用單片機(jī)直接控制VGA/LCD 顯示器的智能顯示,它的性能直接影響到系統(tǒng)的功能和效果.智能VGA 控制板更像是為單片機(jī)量身定做的“顯卡”,能通過(guò)VGA接口直接驅(qū)動(dòng)液晶或CRT 顯示器.其特點(diǎn)是:①分辨率可選800×600或1024×768或640×480;分辨率是640×480時(shí)刷新率是60 Hz,分辨率是 800×600時(shí)刷新率是70 Hz,分辨率是1024×768時(shí)刷新率是60 Hz;顏色位數(shù)為65536色,真正的真彩色;②在指定的X軸,Y軸位置顯示12×12、16×16、24×24、32×32、40×40、48×48、64×64等中英文字符,內(nèi)置有中英文字庫(kù).可以顯示任何字體和大小的中英文字庫(kù),字體的多樣化媲美WINDOW XP操作系統(tǒng);③在指定的X軸,Y軸的位置顯示直線、矩形、圓或橢圓;④動(dòng)態(tài)曲線和波形的顯示;⑤清除全屏、填充指定位置和長(zhǎng)寬的矩形區(qū)域、反色指定大小的矩形區(qū)域;⑥64M字節(jié)大小的超大NAND FLASH存儲(chǔ)器空間用于存放用戶的圖片,支持顯示JPG、BMP、GIF等格式的圖片.圖片的顏色均支持64K色,顯示速度快且流暢.圖片的顯示效果非常接近PC機(jī)上的“所見(jiàn)即所得”;⑦所有的功能只需通過(guò)單片機(jī)的RS232串行口發(fā)送簡(jiǎn)單的指令完成;⑨PS2鼠標(biāo)驅(qū)動(dòng)功能,提供了強(qiáng)大的人機(jī)交互控制功能.上電自動(dòng)識(shí)別鼠標(biāo);鼠標(biāo)出錯(cuò)檢測(cè),出錯(cuò)自動(dòng)重啟;具有4種以上可控鼠標(biāo)形狀.使用過(guò)程中用VGA智能控制板驅(qū)動(dòng)了19寸液晶顯示器[2],應(yīng)用生產(chǎn)商提供的調(diào)試代碼進(jìn)行了顯示設(shè)置,分辨率為800×600,背景色為藍(lán)色,由于生產(chǎn)商在生產(chǎn)過(guò)程中就很多特性已經(jīng)調(diào)試完成,并提供了源代碼,開(kāi)發(fā)人員不必了解和學(xué)習(xí)VGA智能開(kāi)發(fā)板的結(jié)構(gòu)與性能,只要根據(jù)源代碼設(shè)定一些需要設(shè)定的參數(shù),這為系統(tǒng)調(diào)試提供了方便.
SD卡是一種基于半導(dǎo)體快閃記憶器的新一代記憶設(shè)備,在很小的體積內(nèi)結(jié)合了SanDisk快閃記憶卡控制與MLC,是一種微型、低功耗、可移動(dòng)的Flash多功能存儲(chǔ)卡,該卡向上兼容MMC卡,并且增加了智能保護(hù)功能,以有效防止盜版,同時(shí)具有更快的傳輸速率及更高的存儲(chǔ)容量,可廣泛用于便攜式消費(fèi)類(lèi)電子產(chǎn)品中[3].有足夠的空間存儲(chǔ)所需圖片,方便單片機(jī)讀取圖片,SD卡讀寫(xiě)系統(tǒng)中的接口電路采用的是STC12C5A60S2單片機(jī)控制,SD卡中存儲(chǔ)的圖片是經(jīng)前期對(duì)樓層調(diào)查,準(zhǔn)確提供了繪制平面圖的數(shù)據(jù),使用AUTO CAD 2010軟件繪制的平面圖,經(jīng)Adobe Photoshop CS3進(jìn)行加工,經(jīng)轉(zhuǎn)換成bin圖片存儲(chǔ)于SD卡中,并標(biāo)注其位置,在單片機(jī)編程中把圖片調(diào)出時(shí)需要相應(yīng)的位置信息,并通過(guò)軟件編程實(shí)現(xiàn)SPI模式的數(shù)據(jù)傳輸(包括串行時(shí)鐘、數(shù)據(jù)的輸入和輸出),把圖片顯示在液晶顯示器上.在SPI模式下,單片機(jī)與SD卡的連接主要有四根線(包括時(shí)鐘線,兩根數(shù)據(jù)傳輸線和一根片選線).
鍵盤(pán)設(shè)計(jì)方案常見(jiàn)的有兩種,第一是矩陣式,第二是獨(dú)立式[4].由于本系統(tǒng)所涉及到的按鍵不多,常用的獨(dú)立式的按鍵包括k1-k6鍵,用于選擇樓層及主要單位或者主要負(fù)責(zé)人簡(jiǎn)介,功能按鍵有返回按鍵,當(dāng)需要返回首頁(yè)時(shí)按下.液晶顯示器用于顯示樓層平面圖及相關(guān)信息,直接通過(guò)串口與VGA連接.
圖2 系統(tǒng)電路原理圖Fig.2 Circuit principle diagram of the system
在一分鐘內(nèi)沒(méi)有人使用它時(shí),單片機(jī)中斷自動(dòng)關(guān)閉顯示器,需要重新顯示的時(shí)候,按下復(fù)位鍵,重新刷屏,開(kāi)始顯示[5].
如前所述,整個(gè)系統(tǒng)由以上各個(gè)電路單元組成,系統(tǒng)整體原理圖如圖2所示.
為提高代碼執(zhí)行效率,運(yùn)算精確,采用C語(yǔ)言編程[6-7],具有編譯效率高,對(duì)底層硬件操作方便,方便移植等特點(diǎn).主程序模塊主要負(fù)責(zé)定時(shí)中斷的初始化和各I/O口初始化,等待鍵盤(pán)對(duì)各樓層的指令,并選擇各樓層平面圖形,如:在平面圖右邊有其需要了解的部門(mén)或者單位,對(duì)應(yīng)按下選擇鍵,顯示主要部門(mén)簡(jiǎn)介或主要負(fù)責(zé)人簡(jiǎn)介,如果選擇錯(cuò)誤可按下返回按鍵,圖像界面就回到首頁(yè).在無(wú)人使用的時(shí)候自動(dòng)關(guān)閉顯示器,起到節(jié)能和保護(hù)顯示器的作用.
為了使SD卡初始化進(jìn)入SPI模式[8],需要使用的命令有3個(gè):CMD0、ACMD41、CMD55(使用ACMD類(lèi)的指令前應(yīng)先發(fā)CMD55,CMD55起到一個(gè)切換到ACMD類(lèi)命令的作用),為了實(shí)現(xiàn)兼容性,上電或者發(fā)送CMD0后,先發(fā)送CMD55+ACMD41確認(rèn)是否有回應(yīng),如果有回應(yīng)則為SD卡,如果等回應(yīng)超時(shí),則可能是MMC卡,再發(fā)CMD1確認(rèn),正確的回應(yīng)內(nèi)容應(yīng)該是:CMD0—0x01(SD卡處于in-idle-state),CMD55—0x01(SD卡處于in-idle-state),ACMD41—0x00(SD卡跳出in-idle-state,完成初始化準(zhǔn)備接受下一條指令),如果最后的回應(yīng)內(nèi)容是0x01的話,可以循環(huán)發(fā)送CMD55+ACMD41,直到回應(yīng)的內(nèi)容0x00,在所有的指令中,CMD0較特殊,在向SD卡發(fā)送以前需要向SD卡發(fā)送74個(gè)時(shí)鐘(CLK).
SD卡的數(shù)據(jù)傳輸主要通過(guò)塊讀寫(xiě)來(lái)實(shí)現(xiàn),當(dāng)RAM中已存放由模數(shù)轉(zhuǎn)換模塊傳來(lái)的512 KB數(shù)據(jù)時(shí),單片機(jī)便向SD卡寫(xiě)入此塊數(shù)據(jù).塊讀取時(shí),可發(fā)送命令CMD17, 接收到的應(yīng)答信號(hào)為0x00, 這樣就可以直接接收數(shù)據(jù)了,接收到的數(shù)據(jù)的第1個(gè)字節(jié)為數(shù)據(jù)令牌0xfe,后面的為接收到的數(shù)據(jù),當(dāng)輸出口變?yōu)楦唠娖綍r(shí),表明讀取操作完成.SD卡的讀操作與寫(xiě)操作相同.主程序流程圖如圖3、SD卡子程序圖如圖4、VGA子程序圖如圖5所示.
圖3 主程序流程圖 圖4 SD卡子程序圖 圖5 VGA子程序圖 Fig.3 Main program flow chart Fig.4 SD subprogram chart Fig.5 VGA subprogram chart
根據(jù)設(shè)計(jì)原理圖2搭建硬件電路,在連線正確的前提下進(jìn)行硬件調(diào)試,通電后,用示波器檢測(cè)單片機(jī)的ALE管腳,觀察到輸出的波形為方波2MHz,說(shuō)明單片機(jī)工作正常.
該設(shè)計(jì)用C語(yǔ)言編寫(xiě)程序,用Keil uVision3編譯軟件進(jìn)行編譯,將源文件:基于STC12C5A60S2單片機(jī)樓宇平面結(jié)構(gòu)的設(shè)計(jì).C進(jìn)行編譯,編譯順利通過(guò).產(chǎn)生了如下文件:①基于STC12C5A60S2單片機(jī)樓宇平面結(jié)構(gòu)的設(shè)計(jì).uv2;②基于STC12C5A60S2單片機(jī)樓宇平面結(jié)構(gòu)的設(shè)計(jì).M51;③基于STC12C5A60S2單片機(jī)樓宇平面結(jié)構(gòu)的設(shè)計(jì).lnp;④基于STC12C5A60S2單片機(jī)樓宇平面結(jié)構(gòu)的設(shè)計(jì).hex.
本設(shè)計(jì)以湖北民族學(xué)院理學(xué)院教學(xué)大樓為例,顯示效果如圖6所示.
圖6 理學(xué)院教學(xué)大樓平面結(jié)構(gòu)顯示效果圖Fig.6 Science teaching building plane structure display rendering
本文完整的給出了樓宇平面結(jié)構(gòu)顯示系統(tǒng)的設(shè)計(jì)方案,該方案以STC12C5A60S2單片機(jī)為核心,以智能VGA控制板、SD卡及外圍電路為輔助,詳細(xì)說(shuō)明了該系統(tǒng)的結(jié)構(gòu)和工作原理.通過(guò)制作該裝置以及相關(guān)實(shí)驗(yàn),驗(yàn)證了該樓宇平面結(jié)構(gòu)顯示系統(tǒng)具有較高的實(shí)用價(jià)值.目前,該設(shè)計(jì)已經(jīng)申請(qǐng)并獲得了國(guó)家實(shí)用新型專(zhuān)利[9].
[1] 楊明欣,張杰,鄭郁正.基于STC單片機(jī)的實(shí)驗(yàn)開(kāi)發(fā)平臺(tái)的設(shè)計(jì)[J].成都信息工程學(xué)院學(xué)報(bào),2006,21(3):410-413.
[2] 李維緹.郭強(qiáng).液晶顯示應(yīng)用技術(shù)[M].北京:電子工業(yè)出版社,1993:200-315.
[3] 林倩,嚴(yán)桂林.基于STC12C5A60S2單片機(jī)的SD卡讀寫(xiě)[J].電子元器件應(yīng)用,2010,12(4):1-3.
[4] 李直霖.ZLG7290擴(kuò)展鍵盤(pán)在ARM Linux系統(tǒng)中的應(yīng)用[J].機(jī)電工程,2011,28(10):1253-1256.
[5] 李麗.單片機(jī)復(fù)位電路的抗干擾設(shè)計(jì)[J].遼寧師專(zhuān)學(xué)報(bào),2009,11(4):26-27.
[6] 譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2005:134-256.
[7] 鄭春來(lái),韓團(tuán)軍,李鑫.編譯軟件Keil在單片機(jī)課程教學(xué)中的應(yīng)用[J].高教論壇,2009,25(12):96-97.
[8] 尚怡君,葛明濤.SPI模式下對(duì)SD卡的讀寫(xiě)控制[J].光盤(pán)技術(shù),2009,15(8):28-29.
[9] 劉廷平,黃勇,左安友.一種電子樓宇平面結(jié)構(gòu)展示裝置[P].中華人民共和國(guó)國(guó)家知識(shí)產(chǎn)權(quán)局,ZL 2011 2 0018934.X,2011-08-10.