打印
[蓝牙]

介绍一种蓝牙无线显示屏系统的设计方案

[复制链接]
402|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Peonys|  楼主 | 2019-9-4 23:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
介绍一种蓝牙无线显示屏系统的设计方案

0 引言

      蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术。能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用“蓝牙”技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段。其数据速率为1Mbps。采用时分双工传输方案实现全双工传输。

蓝牙技术是一种用于替代有线电缆的短距离无线通信技术。它是由多家公司发起的SIG组织制定的无线通信技术标准,目的是取代现有的PC、打印机、传真机、移动电话和家庭网关等设备上的有线接口,为个人提供语音数据和普通数据的无线传输。蓝牙设备的工作频段选在全世界范围内都可以自由使用的2.4 GHz的ISM频段;成本低,功耗低,体积小,通信距离短,安全性高,能够同时传送普通数据和语音数据,可以组成微微网和散射网等。

本文介绍一种蓝牙无线显示屏系统的设计方案。使用蓝牙技术可以短距离无线控制显示终端,实现图像和字符数据的无线传输和显示,免去了有线连接所带来的缺陷,可以应用在多种领域。


1 系统总体设计

该无线图形显示屏系统主要由两部分组成:主机部分和显示终端部分。主机负责控制命令以及需要显示数据的发送,显示终端部分负责接收和显示。系统结构如图1所示。

主机部分由装有Linux操作系统的PC机和BlueCore4蓝牙模块通过USB接口连接组成。

显示终端由以ARM9微控制器S3C2440A为核心的嵌入式Linux平台加上BlueCore4蓝牙模块以及LCD液晶显示屏组成。Linux操作系统安装在NAND FLASH中,并连接了64 MB的外扩RAM。系统通过蓝牙协议栈的RFCOMM协议层进行通信。RFCOMM协议提供串行数据传输,并能在2台蓝牙设备之间同时维持多达60个连接,可以同时支持遗留串行端口应用程序以及其他应用程序中的OBEX协议。蓝牙协议栈的结构框图如图2所示。

系统的工作过程为:系统初始化以后,主机和显示终端建立蓝牙连接。连接成功以后,主机应用程序通过蓝牙模块向显示终端发送显示的命令,显示终端根据对应命令进行接收图像数据或者字符数据等操作,然后通过LCD控制器将数据发送到LCD液晶显示屏。


2 系统硬件设计

主机端和显示终端都使用了BlueCore4-ROM芯片组成的蓝牙无线收发模块。BlueCore4系列符合2.0版蓝牙标准,并与现有1.1版和1.2版蓝牙设备完全兼容。这里采用的BlueCore4-ROM芯片具有很高的集成度,需要很少的外围露件。它提供了UART、USB2.0等主机接口,并且提供了PCM音频接口以及SPI接口。具有支持微微网和散射网,低功耗,和手机良好兼容,可以和802.11协议共存等优点。BlueCore4蓝牙模块结构如图3所示。

PC主机使用USB接口和BlueCore4蓝牙模块连接,对应的蓝牙模块同样通过USB接口和S3C2440A的USB-HOST接口进行连接。USB接口具有即插即用的优点。通过Linux操作系统的支持,该模块还可以使用通用的USB蓝牙适配器替代。BlueCore4蓝牙模块部分参考电路原理如图4所示。

LCD液晶屏和S3C2440A微控制器之间通过S3C2440A内建的LCD控制器接口进行连接。LCD液晶屏这里采用了3.5 in的L35T32,该液晶屏显示像素为240×320,可显示16位色彩,并可以方便地扩展为更大尺寸的液晶屏。S3C2440A的USB-HOST接口和LCD控制器接口部分参考电路原理。


3 系统软件设计

系统软件同样分为主机部分和显示终端部分。这里主要分析显示终端部分软件的设计,主机部分与其类似。显示终端部分程序包括:LCD液晶屏初始化,蓝牙设备的初始化,蓝牙连接的建立和图像字符数据的传输显示等几个部分。程序流程如图6所示。

用户程序以Linux操作系统上的Bluez蓝牙协议栈为平台进行开发。

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蓝牙库编译安装到终端文件系统中。用户应用程序同样通过交叉编译得到可执行代码,然后下载到终端文件系统运行。


4 结论

在嵌入式Linux操作系统上通过已有的蓝牙协议栈进行蓝牙开发,通过蓝牙协议层无线收发数据,可以不用关心蓝牙底层驱动的实现。用户可以通过各种上层协议进行更复杂的通信,通过蓝牙SCO协议层还可以发送音频数据。因此嵌入式Linux操作系统平台上进行蓝牙无线显示屏系统的开发较为方便,并且具有扩展性能好的优点。



使用特权

评论回复

相关帖子

沙发
Peonys|  楼主 | 2019-9-4 23:29 | 只看该作者
介绍一种蓝牙无线显示屏系统的设计方案

新建 Microsoft Word 文档.pdf

630.83 KB

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

640

主题

901

帖子

5

粉丝