新聞中心

EEPW首頁 > 光電顯示 > 設(shè)計應(yīng)用 > 以藍(lán)牙技術(shù)為基礎(chǔ)的無線顯示屏系統(tǒng)設(shè)計

以藍(lán)牙技術(shù)為基礎(chǔ)的無線顯示屏系統(tǒng)設(shè)計

作者: 時間:2012-07-28 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://butianyuan.cn/article/167772.htm

3.1部分程序

該部分采用了socket編程。通過建立RFCOMM協(xié)議層的socket進(jìn)行連接。連接建立成功之后可以調(diào)用函數(shù)recv或者read讀取主機(jī)發(fā)來的數(shù)據(jù),主機(jī)端則對應(yīng)地采用函數(shù)send或者write發(fā)送數(shù)據(jù)。通信結(jié)束之后可以調(diào)用函數(shù)close結(jié)束連接。

主機(jī)和顯示終端藍(lán)牙模塊都有固定的藍(lán)牙地址,主機(jī)端直接和固定藍(lán)牙地址的顯示終端設(shè)備進(jìn)行連接。一臺主機(jī)可以和多個顯示終端進(jìn)行通信,在不同的顯示終端上顯示圖像和字符。

藍(lán)牙初始化部分參考程序如下:


3.2 LCD液晶屏部分程序

LCD液晶屏部分程序采用了Linux內(nèi)核驅(qū)動程序的framebuffer編程接口。framebuffer為圖像硬件設(shè)備提供了一種抽象化處理,允許應(yīng)用程序通過定義明確的界面來訪問圖像硬件設(shè)備。軟件無須了解任何涉及硬件底層驅(qū)動的東西。通過framebuffer,應(yīng)用程序可以用mmap函數(shù)把顯存映射到應(yīng)用程序虛擬地址空間,將要顯示的數(shù)據(jù)寫入內(nèi)存空間就可以在屏幕上顯示出來。LCD初始化和清屏部分參考程序如下:

LCD液晶屏初始化和藍(lán)牙socket初始化連接完成以后,便可以通過藍(lán)牙發(fā)送圖像和字符數(shù)據(jù)。藍(lán)牙接收顯示圖像和字符兩個部分的程序類似,都是通過調(diào)用函數(shù)recv或者read讀取主機(jī)發(fā)來的命令,經(jīng)過程序判斷然后以相同的方式接收數(shù)據(jù)。字符部分?jǐn)?shù)據(jù)接收和顯示參考程序如下:


該段程序利用接收到的字符數(shù)據(jù)得到對應(yīng)的顯示字庫數(shù)據(jù),然后通過frambuffer顯示接口顯示到LCD液晶屏上面。源程序帶有顯示字庫文件,該文件通過編譯并嵌入可執(zhí)行代碼,然后下載到顯示終端文件。這里只添加了英文字庫和對應(yīng)的顯示代碼,可以正常顯示英文字符。如果需要,通過添加中文字庫和少量顯示代碼就可以很方便地實現(xiàn)中文字符的顯示。圖像部分程序則是將接收到的位圖數(shù)據(jù)通過frambuffer顯示接口直接顯示到LCD液晶屏上面。

為了在顯示終端的Linux操作上使用藍(lán)牙協(xié)議棧,需要在交叉編譯嵌入式Linux內(nèi)核時將所需的藍(lán)牙支持選項選上,并將所需的Bluez藍(lán)牙庫編譯安裝到終端文件系統(tǒng)中。用戶應(yīng)用程序同樣通過交叉編譯得到可執(zhí)行代碼,然后下載到終端文件系統(tǒng)運行。

該系統(tǒng)可以應(yīng)用在公共信息,如大廳廣告信息屏、建筑物提示標(biāo)志等地方,可以避免有線連接的缺陷。系統(tǒng)通過擴(kuò)展后還可以同移動電話、PDA、耳機(jī)、揚聲器交換數(shù)據(jù)。

4結(jié)論

在嵌入式Linux操作系統(tǒng)上通過已有的藍(lán)牙協(xié)議棧進(jìn)行藍(lán)牙開發(fā),通過藍(lán)牙協(xié)議層收發(fā)數(shù)據(jù),可以不用關(guān)心藍(lán)牙底層驅(qū)動的實現(xiàn)。用戶可以通過各種上層協(xié)議進(jìn)行更復(fù)雜的通信,通過藍(lán)牙SCO協(xié)議層還可以發(fā)送音頻數(shù)據(jù)。因此嵌入式Linux操作系統(tǒng)平臺上進(jìn)行藍(lán)牙無線系統(tǒng)的開發(fā)較為方便,并且具有擴(kuò)展性能好的優(yōu)點。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉