支持Android智能手機(jī)控制的DALI智能照明系統(tǒng)設(shè)計(jì)
出處:電子技術(shù)網(wǎng) 發(fā)布于:2013-08-12 09:01:54
摘要:首先簡單介紹DALI協(xié)議。在分析整個(gè)智能照明系統(tǒng)的基礎(chǔ)上,設(shè)計(jì)一種基于客戶機(jī)/服務(wù)端(C/S)架構(gòu)的系統(tǒng),在Android操作系統(tǒng)的智能手機(jī)上面開發(fā)客戶端軟件,并在Windows環(huán)境下使用VB6.0開發(fā)服務(wù)器端軟件。客戶端軟件和服務(wù)器軟件在構(gòu)建的局域網(wǎng)中驗(yàn)證通過。
1引言
智能照明系統(tǒng)應(yīng)用在智能建筑中,不僅能營造出舒適的生活工作環(huán)境,引入現(xiàn)代化的管理方式,而且還能夠節(jié)約能源。傳統(tǒng)的智能家居系統(tǒng),大多采用Pc做控制終端,并基于Internet的遠(yuǎn)程控制,受到Intemet地域的限制,使用不是很方便。網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展為智能家居提供了強(qiáng)大動(dòng)力,智能手機(jī)作為控制終端已成必然趨勢(shì)。本文設(shè)計(jì)一種將Android操作系統(tǒng)的智能手機(jī)作為控制終端的DALI智能照明系統(tǒng)。
2 DALI協(xié)議簡介
數(shù)字可尋址照明接口(DALI,DigitalAddressing Lighting Interface)協(xié)議是目前照明領(lǐng)域的國際標(biāo)準(zhǔn)協(xié)議,也是國際電工委員會(huì)的標(biāo)準(zhǔn)(IEC60929)。DALI系統(tǒng)采用主從式結(jié)構(gòu),系統(tǒng)多可以連接64個(gè)從控模塊,每個(gè)從控模塊都擁有一個(gè)特定的地址,該地址在系統(tǒng)初始化時(shí)設(shè)定,使用過程中根據(jù)需求可修改從控模塊的地址。從控模塊多可分為16組(以組地址區(qū)分),每個(gè)模塊可以設(shè)定16個(gè)場景,組地址和場景都可以根據(jù)需要設(shè)定。主控模塊與從控模塊之間使用兩條信號(hào)線通信,數(shù)據(jù)采集用曼徹斯特編碼方式編碼,信號(hào)上升沿表示“1”,下降沿表示“0”,通信速率為1200baud/s.
通信的過程中主控模塊使用兩種不同的數(shù)據(jù)幀格式:
發(fā)送幀(主機(jī)發(fā)送從機(jī))和接收幀(從機(jī)發(fā)送到主機(jī))。主控模塊發(fā)送信息包括一個(gè)起始位,16個(gè)數(shù)據(jù)位(8位地址和8位指令)以及2個(gè)停止位;從控模塊的返回幀包括一個(gè)起始位8個(gè)數(shù)據(jù)位以及兩個(gè)停止位。
3 系統(tǒng)總體設(shè)計(jì)
本文設(shè)計(jì)了一種客戶端/服務(wù)器(C/S)架構(gòu)的照明控制系統(tǒng)。手機(jī)客戶端軟件是在目前比較流行的Android操作系統(tǒng)下開發(fā)的。服務(wù)器端軟件是Windows系統(tǒng)下的VB6.0開發(fā)的。客戶端和服務(wù)器端是通過套接字(Socket)來建立連接。Android系統(tǒng)下應(yīng)用程序的編程語言是Java,而Java提供了Socket以及ServerSocket來實(shí)現(xiàn)Socket.y通信。
Windows系統(tǒng)也提供了Winsock控件。41來支持Socket通信。同時(shí),VB6.0提供MSComm控件來開發(fā)串口通信程序。
整個(gè)系統(tǒng)的的設(shè)計(jì)簡圖如圖1所示。服務(wù)器端接收到客戶端發(fā)過來控制命令后解析這些命令并調(diào)用相應(yīng)處理程序,然后將控制命令從串口發(fā)送出去。
RS232.DALI網(wǎng)關(guān)接收到從服務(wù)器串口發(fā)送過來的控制命令后,就會(huì)響應(yīng)從控模塊,整個(gè)過程完成了電平的轉(zhuǎn)換以及控制命令的解析。

4客戶端軟件設(shè)計(jì)
4.1設(shè)計(jì)簡介
客戶端軟件的開發(fā)環(huán)境是實(shí)時(shí)版本的Eclipse,JDK以及Android SDK也都是實(shí)時(shí)的版本。軟件設(shè)計(jì)了六個(gè)主要控制界面(如圖2所示)以及一些其他與軟件相關(guān)的界面。主界面(圖2(a))對(duì)應(yīng)一個(gè)主Activity,其他五個(gè)界面分別對(duì)應(yīng)四個(gè)Activity分別實(shí)現(xiàn)從控模塊查詢與控制、場景控制與設(shè)置、組地址設(shè)置、直接命令等功能。這四個(gè)Activity都繼承自主Activity.數(shù)據(jù)的發(fā)送和接收函數(shù)繼承自主Activity.
4.2主Activity的設(shè)計(jì)
主Activity是軟件的主界面如圖2(a)所示,兩個(gè)滑動(dòng)條分別完成直接功率調(diào)光和淡光時(shí)間設(shè)置,滑動(dòng)條的每滑動(dòng)將觸發(fā)數(shù)據(jù)發(fā)送的命令,服務(wù)器端監(jiān)聽到控制命令后對(duì)發(fā)送過來的控制命令進(jìn)行解析,完成對(duì)應(yīng)地址的從控模塊直接功率調(diào)光以及淡光時(shí)間的設(shè)置。兩個(gè)地址選擇框用來設(shè)置地址的模式,某個(gè)選擇框的選中代表選擇相應(yīng)地址模式,兩者均未選中表示地址為短地址。地址的選定是通過從文本框手動(dòng)輸入,兩個(gè)按鈕實(shí)現(xiàn)開燈和關(guān)燈的功能。
主界面是進(jìn)入其他界面的門戶,Android提供專門的菜單鍵,進(jìn)行菜單設(shè)計(jì)。軟件設(shè)計(jì)了兩層菜單,層包括軟件設(shè)置、工具、、幫助四個(gè)菜單。
設(shè)置菜單包含軟件設(shè)置、從控模塊設(shè)置、退出三個(gè)子菜單;工具菜單包含燈光亮度、場景、組;只包含直接命令一個(gè)子菜單;幫助部分包含軟件的相關(guān)信息。Android提供OnCreateO pcionMenu進(jìn)行菜單設(shè)計(jì),同時(shí)提供了0noptionItemselected處理菜單事件。整個(gè)軟件的流程如圖3所示。
客戶端與服務(wù)器端是通過Socket建立連接,既有數(shù)據(jù)從客戶端發(fā)送到服務(wù)器端,也有數(shù)據(jù)從服務(wù)器端返回至客戶端,即DALI協(xié)議中的發(fā)送幀與接收幀。前面已經(jīng)提到過Android應(yīng)用程序采用的編程語言是Java.
Java提供了許多關(guān)于Socket通信的類和函數(shù),文中客戶端使用了客戶端類Socket以及BufferedWriter和DatalnputStream輸入輸出類實(shí)現(xiàn)Socket通信??蛻舳嗽O(shè)計(jì)了兩個(gè)函數(shù),SendCmd(String cmd)和SendRead(String cmd)。SendCmd的發(fā)送單向數(shù)據(jù)沒有返回幀,SendRead既發(fā)送數(shù)據(jù)同時(shí)接收服務(wù)器端返回的數(shù)據(jù)。
分別設(shè)計(jì)兩個(gè)函數(shù)的原因是因?yàn)镈ataInputStream的readLine方法在沒有數(shù)據(jù)返回時(shí)會(huì)造成Socket阻塞。
Java的數(shù)據(jù)類型與Vb的數(shù)據(jù)類型存在一定的差異,數(shù)據(jù)類型的轉(zhuǎn)換比較復(fù)雜。本文統(tǒng)一使用字符串實(shí)現(xiàn)客戶端與服務(wù)器端的數(shù)據(jù)交換。將各種發(fā)送數(shù)據(jù)通過特定的符號(hào)組合成字符串,經(jīng)客戶端發(fā)送給服務(wù)器端,服務(wù)器端軟件通個(gè)分隔函數(shù)將字符串分隔成組合前的信息。因此,數(shù)據(jù)發(fā)送和接收函數(shù)不需要因?yàn)閿?shù)據(jù)類型的不同而采取不同的函數(shù),同時(shí)也省去Java與Vb數(shù)據(jù)類型不一致的處理過程。


4.3各個(gè)功能模塊的設(shè)計(jì)
實(shí)現(xiàn)各模塊的類都是主Activity的子類,它們都使用了主Activity的數(shù)據(jù)發(fā)送和接收函數(shù)。各功能模塊的設(shè)計(jì)簡介如下:
1)從控單元設(shè)置(圖2(b))該模塊能完成從控模塊的亮度、亮度、故障亮度、上電亮度、淡光時(shí)間、淡光速率的設(shè)置和查詢。完成版本號(hào)、設(shè)備類型、功率以及當(dāng)前亮度的查詢。
2)組控制(圖2(f))該模塊設(shè)計(jì)了16個(gè)選擇框(Checkbox),分別代表十六個(gè)組。通過選擇框的選擇以及設(shè)置和查詢,能夠?qū)崿F(xiàn)組地址的統(tǒng)一設(shè)置和查詢。
3)場景控制(圖2(C)、(d))該模塊包括場景的選擇、設(shè)置、查詢功能。場景的設(shè)置和查詢部分設(shè)計(jì)了一個(gè)對(duì)話框,這樣設(shè)計(jì)的原因是可以在一個(gè)Activity內(nèi)完成所有的功能。
4)直接命令(圖2(e))這個(gè)模塊主要為了方便調(diào)試而設(shè)計(jì)的。可以通過對(duì)應(yīng)的文本框發(fā)送自定義的命令,同時(shí)可以回顯從服務(wù)器端返回的數(shù)據(jù),它發(fā)送的命令非常直觀,可以用來調(diào)試RS232-DALI網(wǎng)關(guān)以及從控模塊。
5服務(wù)器端軟件設(shè)計(jì)
5.1設(shè)計(jì)簡介
服務(wù)器端軟件是使用VB6.0開發(fā)的,軟件使用了Windows提供的Winsock和MSComm控件。
Winsock控件提供了訪問TCP和UDP網(wǎng)絡(luò)服務(wù)的方便途徑。編寫客戶或服務(wù)器應(yīng)用程序,不必了解TCP的細(xì)節(jié)或調(diào)用低級(jí)的Winsock API.通過設(shè)置控件的屬性并調(diào)用其方法就可輕易連接到一臺(tái)遠(yuǎn)程機(jī)器上去,并且還可雙向交換數(shù)據(jù)。MSComm控件通過串行端口傳輸和接收數(shù)據(jù),為應(yīng)用程序提供串行通訊功能。服務(wù)器端支持多個(gè)客戶端,基本服務(wù)器只能接受一個(gè)連接請(qǐng)求。通過創(chuàng)建Winsock控件數(shù)組,使用一個(gè)控件也可以同時(shí)接受多個(gè)連接請(qǐng)求。
利用這種方法,不需要關(guān)閉連接,而只需創(chuàng)建新的控件實(shí)例(通過設(shè)置其索引屬性),然后在新的實(shí)例上調(diào)用Accept方法。軟件啟動(dòng)后開始監(jiān)聽來自客戶端的Socket請(qǐng)求。當(dāng)監(jiān)聽到從客戶端發(fā)送過來的數(shù)據(jù)以后,然后判斷發(fā)送過來的數(shù)據(jù),再調(diào)用相應(yīng)的數(shù)據(jù)處理函數(shù)。在軟件啟動(dòng)的同時(shí)也開啟了定時(shí)器,循環(huán)檢測(cè)標(biāo)志位,檢測(cè)到以后進(jìn)入對(duì)應(yīng)的命令處理函數(shù)。軟件的流程如圖4所示。

5.2數(shù)據(jù)的分析和處理
當(dāng)服務(wù)器端接收到從客戶端傳過來的字符串時(shí),使用Split函數(shù)將字符串分隔成數(shù)組。根據(jù)數(shù)組的長度判斷命令的種類。基本控制命令長度為3、組的長度判斷命令的種類?;究刂泼铋L度為3、組控制命令長度為4、從控模塊控制命令長度為9、場景控制命令長度為19.VB6.0提供了一個(gè)Timer控件,通過定時(shí)器來實(shí)現(xiàn)控制命令的循環(huán)監(jiān)聽和處理。
程序定義了一個(gè)標(biāo)志位來判斷控制命令類型,當(dāng)接收到客戶端數(shù)據(jù)并進(jìn)行分隔,賦值等操作以后相對(duì)應(yīng)的標(biāo)志位被致位,定時(shí)器循環(huán)檢測(cè)標(biāo)志位,當(dāng)檢測(cè)對(duì)應(yīng)標(biāo)志位被置“1”時(shí)便進(jìn)入對(duì)應(yīng)的命令處理程序,處理完以后標(biāo)志位被置零。
5.3地址設(shè)置
DALI自動(dòng)分配地址簡介,首先給需要重新分配地址的單元分配一個(gè)24位二進(jìn)制隨機(jī)地址,然后通過尋找隨機(jī)地址的單元并分配短地址,然后重復(fù)尋找直到所有需要設(shè)置短地址的單元都設(shè)置完。
因?yàn)?4位二進(jìn)制數(shù)比較大,按常規(guī)方法尋找的話,花費(fèi)的時(shí)間比較長。從上面地址分配的原理可以看到,在整個(gè)地址分配的過程中,主要是主機(jī)24位數(shù)據(jù)和DALI設(shè)備24隨機(jī)數(shù)比較的問題。如何才能找到的隨機(jī)數(shù)的設(shè)備,這是解決這個(gè)問題是關(guān)鍵。比較兩個(gè)數(shù)據(jù)的大小方法很多,這里采用是2分算法。實(shí)現(xiàn)步驟如下:
1)主機(jī)發(fā)送FFFFFF與DALI設(shè)備比較,因?yàn)镈ALI設(shè)備產(chǎn)生的隨機(jī)肯定比FFFFFF要小的,如果總線后,采用2分算法比較主機(jī)數(shù)據(jù)上存在沒有分配地址的設(shè)備,則肯定回答YES.否則NO.
2)在上一步中得知總線上有沒有分配地址的設(shè)備和隨機(jī)數(shù)。2分法基數(shù)為8、4、2、1,三字節(jié)的數(shù)據(jù)按半字節(jié)劃分為6個(gè)半字節(jié)數(shù),從的半字節(jié),假設(shè)開始時(shí)值Y=8,如果有DALI設(shè)備回答YES,則將現(xiàn)值減去2分法基數(shù)的下一個(gè)數(shù),修改為Y=Y一4,如有DALI設(shè)備回答NO,則將現(xiàn)值加上2分法基數(shù)的下一個(gè)數(shù),修改Y=Y+4,直到2分法基數(shù)的值小于1為止。
3)找到的隨機(jī)數(shù)的設(shè)備后,使用PROGRAM SHORT ADDRESS命令給這個(gè)設(shè)備分配一個(gè)地址。
4)完成地址分配后,使用WITHDRAW退出命令,使已分配地址的設(shè)備退出比較命令。
5)重復(fù)以上步驟,比較找到其他的DALI設(shè)備。直至到發(fā)送FFFFFF都沒有設(shè)備回答YES為止。
6 結(jié)束語
隨著智能手機(jī)行業(yè)的發(fā)展,智能手機(jī)在生活當(dāng)中充當(dāng)?shù)慕巧苍絹碓街匾0阉O(shè)計(jì)成智能照明控制終端是一種趨勢(shì),是豐富智能手機(jī)功能的一個(gè)設(shè)計(jì)。本文在Android系統(tǒng)上面開發(fā)客戶端軟件,界面設(shè)計(jì)符合人們的操作習(xí)慣,簡單直觀。同時(shí)開發(fā)了服務(wù)器端軟件,并與DALI網(wǎng)絡(luò)連接調(diào)試通過。
實(shí)現(xiàn)了文中所述功能。
總之,這樣一個(gè)設(shè)計(jì)符合人們對(duì)智能家居生活的要求,與此同時(shí)將智能手機(jī)引入到智能照明系統(tǒng)當(dāng)中豐富了智能照明系統(tǒng)的控制終端。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- USB-C接口全解析:協(xié)議兼容、快充原理與常見問題排查2025/12/16 9:50:42
- 簡述計(jì)算機(jī)總線的分類2025/9/4 17:12:23
- 深度剖析三進(jìn)線兩母聯(lián)供電系統(tǒng)設(shè)計(jì)方案2025/9/3 10:37:39
- 匯流排是什么匯流排好還是線接好2025/8/28 17:13:00
- 安森美 USB - C 電池充電器解決方案2025/8/28 15:45:10
- PCB基材選型與性能適配核心技術(shù)規(guī)范
- 過采樣技術(shù)與數(shù)字濾波如何共同提升 ADC 的有效位數(shù)
- MOSFET寄生參數(shù)對(duì)電路性能的影響
- 集成與分立方案:電機(jī)驅(qū)動(dòng)電源設(shè)計(jì)如何選?
- 汽車電子連接器應(yīng)用與要求
- PCB埋盲孔設(shè)計(jì)與工藝適配核心技術(shù)規(guī)范
- 如何提高M(jìn)OSFET在惡劣環(huán)境下的可靠性?
- 繼電器觸點(diǎn)壽命及可靠性分析
- 可重構(gòu)濾波器技術(shù):滿足多標(biāo)準(zhǔn)通信系統(tǒng)的靈活需求
- 磁集成技術(shù)在小型化電源設(shè)計(jì)中的應(yīng)用









