新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 一種藍牙無線顯示屏系統的設計方案

        一種藍牙無線顯示屏系統的設計方案

        作者: 時間:2014-06-27 來源:網絡 收藏

          3系統軟件設計

        本文引用地址:http://www.104case.com/article/248952.htm

          系統軟件同樣分為主機部分和顯示終端部分。這里主要分析顯示終端部分軟件的設計,主機部分與其類似。顯示終端部分程序包括:LCD液晶屏初始化,設備的初始化,連接的建立和圖像字符數據的傳輸顯示等幾個部分。程序流程如圖6所示。

          

         

          用戶程序以Linux操作系統上的Bluez協議棧為平臺進行開發。主機應用程序采用GCC編譯器進行編譯,顯示終端應用程序采用arm-linux-gcc編譯器進行交叉編譯。

          3.1藍牙部分程序設計

          該部分采用了藍牙socket編程。通過建立藍牙RFCOMM協議層的socket進行連接。連接建立成功之后可以調用函數recv或者 read讀取主機發來的數據,主機端則對應地采用函數send或者write發送數據。通信結束之后可以調用函數close結束連接。

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

          藍牙初始化部分參考程序如下:

          

         

          3.2 LCD液晶屏部分程序設計

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

          

         

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

          

         

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

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

          該系統可以應用在公共信息顯示屏,如大廳廣告信息屏、建筑物提示標志等地方,可以避免有線連接的缺陷。系統通過擴展后還可以同移動電話、PDA、無線耳機、無線揚聲器交換數據。

          4結論

          在嵌入式Linux操作系統上通過已有的藍牙協議棧進行藍牙開發,通過藍牙協議層無線收發數據,可以不用關心藍牙底層驅動的實現。用戶可以通過各種上層協議進行更復雜的通信,通過藍牙SCO協議層還可以發送音頻數據。因此嵌入式Linux操作系統平臺上進行藍牙無線顯示屏系統的開發較為方便,并且具有擴展性能好的優點。

        藍牙技術相關文章:藍牙技術原理

        上一頁 1 2 下一頁

        關鍵詞: 藍牙 ARM9 S3C2440A

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 辛集市| 北京市| 许昌县| 中江县| 瓦房店市| 呼图壁县| 澳门| 安阳市| 青海省| 久治县| 体育| 苗栗县| 鄂托克前旗| 乌兰浩特市| 苍山县| 阿合奇县| 祁连县| 渑池县| 墨江| 清流县| 屏东市| 郯城县| 万全县| 三明市| 白河县| 大洼县| 胶州市| 景洪市| 香河县| 新昌县| 林州市| 贵州省| 清远市| 红原县| 定结县| 仁寿县| 阳山县| 来安县| 星座| 常德市| 穆棱市|