韓 錚,紀(jì) 宇
(赤峰學(xué)院 物理與電子信息工程系,內(nèi)蒙古 赤峰 024000)
基于串行通信的光立方控制器的設(shè)計(jì)
韓錚,紀(jì)宇
(赤峰學(xué)院物理與電子信息工程系,內(nèi)蒙古赤峰024000)
針對光立方顯示效果開發(fā)的問題,設(shè)計(jì)了光立方的控制器,通過使用上位機(jī)的串行接口與單片機(jī)相連接,利用上位機(jī)軟件生成不同的顯示數(shù)據(jù),通過串行通信方式發(fā)送給下位機(jī)控制執(zhí)行,解決了光立方顯示效果開發(fā)過程中程序頻繁下載的問題,下位機(jī)通過控制通用口和移位寄存器實(shí)現(xiàn)了光立方的燈光效果控制.
光立方;串行通信;燈光控制
LED是普遍使用的發(fā)光器件,使用LED發(fā)光二極管將其按照8*8*8排列成立體形狀,稱為光立方或者3D8,是近年來比較流行的DIY燈光制作方案,由于每個(gè)LED均可以單獨(dú)控制亮滅,與平面顯示屏相比較,光立方在空間上進(jìn)行燈光點(diǎn)的控制,組合效果更加豐富,所以對燈光效果的開發(fā)一直是值得研究和開發(fā)的內(nèi)容[1,2].
光立方通常使用單片機(jī)作為控制器,利用單片機(jī)串行通信接口的同步移位寄存器工作方式,將光立方的燈光控制數(shù)據(jù)移入到寄存器中,通過行列控制信號組合完成不同燈光方案的設(shè)計(jì).
光立方將LED排列到3維空間中,而LED控制引腳只有兩個(gè),所以如何排列是首先要解決的問題,通??梢詫⒘⒎襟w按照空間中三個(gè)坐標(biāo)的方向進(jìn)行切片,有三種方式:即在立方體的X、Y、Z三個(gè)方向中的任意一個(gè)進(jìn)行分割作為單獨(dú)控制的面[3,4].
圖1 光立方控制方式
對于不同的分割方式,連接方式有所不同,但是通常將同一層的LED共接在一起連接到電源或者地,由一根控制線引出作為層控制信號,而與層相垂直的線上的LED將另一個(gè)引腳共接,稱為一束(或與層垂直的列).不同的分割和連接將產(chǎn)生不同的控制代碼,可使用軟件生成字模,使用方法與點(diǎn)陣取模類似,本例中使用圖1中(a)方式進(jìn)行設(shè)計(jì),取模與焊接方式如圖所示:
圖2 光立方取模與焊接方式
顯示時(shí),逐層掃描點(diǎn)亮,因?yàn)閽呙栝g隔較短,人眼視覺殘留效應(yīng)使得看起來像多層同時(shí)點(diǎn)亮一樣[5].本文使用Z方向切面,分成8層,每層有64個(gè)LED燈珠對應(yīng)64束,需要8組移位寄存器存儲該層對應(yīng)的顯示數(shù)據(jù),循環(huán)將層掃描數(shù)據(jù)送入8組寄存器配合層掃描即可點(diǎn)亮整個(gè)立方體.每層公用LED陽極,陰極按垂直于該面,最終將所用8個(gè)面的對應(yīng)陰極連在一起,引出64個(gè)LED陰極,此64個(gè)陰極信號決定平面中哪些燈量,而陽極信號決定哪層亮.
本項(xiàng)目是針對光立方效果開發(fā)調(diào)試的硬件平臺,由于單片機(jī)片上ROM有限且調(diào)試時(shí)需要經(jīng)常改變控制數(shù)據(jù)不停的執(zhí)行,所以單一系統(tǒng)控制方案不可取,使用上位機(jī)發(fā)送顯示數(shù)據(jù),下位機(jī)顯示的方式來進(jìn)行設(shè)計(jì),更能有效的滿足要求,一旦效果設(shè)計(jì)成功可以選用合適的單片機(jī)做成獨(dú)立的光立方.系統(tǒng)框圖如下所示
圖3 系統(tǒng)框圖
使用3D8取模軟件設(shè)計(jì)每層燈光的字模,由上位機(jī)通過串行發(fā)送到光立方顯示,光立方控制電路使用串行口接收數(shù)據(jù)并有移位寄存器輸出鎖存,達(dá)到顯示調(diào)試的目的.
光立方由單片機(jī)系統(tǒng)控制,層控制使用單片機(jī)P0口8個(gè)引腳,每層的數(shù)據(jù)有P2.0-P2.3將接收到的數(shù)據(jù)傳入到595芯片中,由于篇幅所限只給出2 個(gè)595級聯(lián)的電路,實(shí)際使用8塊,每個(gè)鎖存8位數(shù)據(jù)共64位陰極控制信號[5].
圖4 硬件電路圖
軟件設(shè)計(jì)首先設(shè)計(jì)通信協(xié)議的設(shè)計(jì),光立方串口通訊協(xié)議設(shè)置如下:
波特率為115200;無校驗(yàn)位;數(shù)據(jù)位為8位;
命令僅由2個(gè)字節(jié)組成.發(fā)送順序?yàn)橄雀?位(H7-H0),再低8位(L7-L0).考慮系統(tǒng)實(shí)時(shí)性要求及實(shí)現(xiàn)的簡便,沒有設(shè)置檢驗(yàn)位,合計(jì)三種代碼格式,使用三種開始碼與之對應(yīng)、不設(shè)結(jié)束碼.
表1 通信協(xié)議
因?yàn)椴辉O(shè)置結(jié)束碼,所以必須要保證每條代碼發(fā)送的完整性.
每層LED按照順序編號單片機(jī)接收到相應(yīng)指令后按照行列要求進(jìn)行指令解析,講實(shí)際控制數(shù)據(jù)發(fā)送給595芯片,同時(shí)控制層電源.
為了保證每層亮度均衡,保證每層掃描時(shí)間相同,同時(shí)使用三極管對每層電流進(jìn)行擴(kuò)流.使用串行口中斷進(jìn)行數(shù)據(jù)通信控制,設(shè)置接收緩沖區(qū)存儲指令,單片機(jī)根據(jù)指令輸出控制信號對LED進(jìn)行控制.
針對光立方燈光效果開發(fā)調(diào)試的工作困難的問題,利用串行通信發(fā)送上位機(jī)指令對光立方進(jìn)行控制,能快速的進(jìn)行效果驗(yàn)證,同時(shí)設(shè)計(jì)了硬件電路方案和軟件通信協(xié)議,解決了光立方效果開發(fā)過程中程序頻繁下載的問題.
〔1〕康志強(qiáng),汪佳,湯勇明.基于FPGA的3D光立方設(shè)計(jì)[J].電子器件,2012(06):683-686.
〔2〕蘇珊,肖英,李行杰.基于STC單片機(jī)的8×8×8 LED光立方系統(tǒng)設(shè)計(jì)[J].吉首大學(xué)學(xué)報(bào)(自然科學(xué)版),2013(06):33-36.
〔3〕韓鵬程,婁穎,池承選.基于單片機(jī)的光立方系統(tǒng)設(shè)計(jì)[J].電子世界,2014(12):528.
〔4〕虞滄.基于單片機(jī)的光立方系統(tǒng)設(shè)計(jì)[J].電子測試,2015(06):28-30.
〔5〕吳永德,羅萍.基于STC15F2K60S2單片機(jī)的LED光立方設(shè)計(jì)[J].電腦編程技巧與維護(hù),2015 (11):81-84.
〔6〕楊永剛.3D光立方的設(shè)計(jì)與制作[J].電子世界,2014(06):129.
TN873
A
1673-260X(2016)08-0053-02
2016-03-15