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