0引言蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术。能在包括移动电话、PDA、、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用“蓝牙技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2.4GHzISM(即工业、科学、医学)频段。其数据速率为1Mbps。采用时分双工传输方案实现全双工传输。蓝牙技术是一种用于替代有线电缆的短距离无线通信技术。它是由多家公司发起的SIG组织制定的无线通信技术标准,目的是取代现有的PC、打印机、传真机、移动电话和家庭网关等设备上的有线接口,为个人提供语音数据和普通数据的无线传输。蓝牙设备的工作频段选在全世界范围内都可以自由使用的2.4GHz的ISM频段;成本低,功耗低,体积小,通信距离短,安全性高,能够同时传送普通数据和语音数据,可以组成微微网和散射网等。本文介绍一种蓝牙无线显示屏系统的设计方案。使用蓝牙技术可以短距离无线控制显示终端,实现图像和字符数据的无线传输和显示,免去了有线连接所带来的缺陷,可以应用在多种领域。1系统总体设计该无线图形显示屏系统主要由两部分组成:主机部分和显示终端部分。主机负责控制命令以及需要显示数据的发送,显示终端部分负责接收和显示。系统结构如图1所示。主机部分由装有Linux操作系统的PC机和BlueCore4蓝牙模块通过USB接口连接组成。显示终端由以ARM9微控制器S3C2440A为核心的嵌入式Linux平台加上BlueCore4蓝牙模块以及LCD液晶显示屏组成。Linux操作系统安装在NFLASH中,并连接了64MB的外扩RAM。系统通过蓝牙协议栈的RFCOMM协议层进行通信。RFCOMM协议提供串行数据传输,并能在2台蓝牙设备之间同时维持多达60个连接,可以同时支持遗留串行端口应用程序以及其他应用程序中的OBEX协议。蓝牙协议栈的结构框图如图2所示。系统的工作过程为:系统初始化以后,主机和显示终端建立蓝牙连接。连接成功以后,主机应用程序通过蓝牙模块向显示终端发送显示的命令,显示终端根据对应命令进行接收图像数据或者字符数据等操作,然后通过LCD控制器将数据发送到LCD液晶显示屏。2系统硬件设计主机端和显示终端都使用了CSR公司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.5in的L35T32,该液晶屏显示像素为240×320,可显示16位色彩,并可以方便地扩展为更大尺寸的液晶屏。S3C2440A的USB-HOST接口和LCD控制器接口部分参考电路原理。3系统软件设计系统软件同样分为主机部分和显示终端部分。这里主要分析显示终端部分软件的设计,主机部分与其类似。显示终端部分程序包括:LCD液晶屏初始化,蓝牙设备的初始化,蓝牙连接的建立和图像字符数据的传输显示等几个部分。程序流程如图6所示。用户程序以Linux操作系统上的Bluez蓝牙协议栈为平台进行开发。3.1蓝牙部分程序设计该部分采用了蓝牙socket编程。通过建立蓝牙RFCOMM协议层的socket进行连接。连接建立成功之后可以调用函数recv或者read读取主机发来的数据,主机端则对应地采用函数send或者write发送数据。通信结束之后可以调用函数close结束连接。主机和显示终端蓝牙模块都有固定的蓝牙地址,主机端直接和固定蓝牙地址的显示终端设备进行连接。一台主机可以和多个显示终端进行通信,在不同的显示终端上显示图像和字符。蓝牙初始化部分参考程序如下:3.2LCD液晶屏部分程序设计LCD液晶屏部分程序采用了Linux内核驱动程序的framebuffer编程接口。framebuffer为图像硬件设备提供了一种抽象化处理,允许应用程序通过定义明确的界面来访问图像硬件设备。通过framebuffer,应用程序可以用mmap函数把显存映射到应用程序虚拟地址空间,将要显示的数据写入内存空间就可以在屏幕上显示出来。LCD显示屏初始化和清屏部分参考程序如下:LCD液晶屏初始化和蓝牙socket初始化连接完成以后,便可以通过蓝牙发送图像和字符数据。蓝牙接收显示图像和字符两个部分的程序类似,都是通过调用函数recv或者read读取主机发来的命令,经过程序判断然后以相同的方式接收数据。字符部分数据接收和显示参考程序如下:该段程序利用接收到的字符数据得到对应的显示字库数据,然后通过frambuffer显示接口显示到LCD液晶屏上面。源程序带有显示字库文件,该文件通过编译并嵌入可执行代码,然后下载到显示终端文件系统。系统这里只添加了英文字库和对应的显示代码,可以正常显示英文字符。图像部分程序则是将接收到的位图数据通过frambuffer显示接口直接显示到LCD液晶屏上面。为了在显示终端的Linux操作系统上使用蓝牙协议栈,需要在交叉编译嵌入式Linux内核时将所需的蓝牙支持选项选上,并将所需的Bluez蓝牙库编译安装到终端文件系统中。用户应用程序同样通过交叉编译得到可执行代码,然后下载到终端文件系统运行。4结论在嵌入式Linux操作系统上通过已有的蓝牙协议栈进行蓝牙开发,通过蓝牙协议层无线收发数据,可以不用关心蓝牙底层驱动的实现。用户可以通过各种上层协议进行更复杂的通信,通过蓝牙SCO协议层还可以发送音频数据。因此嵌入式Linux操作系统平台上进行蓝牙无线显示屏系统的开发较为方便,并且具有扩展性能好的优点。北京至福州货运专线北京到上海物流专线北京到南京物流专线小口径膛线无缝钢管gcr15轴承钢管轴承钢管生产厂齿轮泵厂家RY导热油泵LQB沥青保湿泵有载调压电力变压器高出力变压器非晶合金变压器电动二通阀汽水分离器缓闭式止回阀杭州电焊机价格杭州螺杆空气压缩机杭州等离子切割机报价公交刷卡机手持刷卡机手持收费机微机监控电机保护器电机缺相保护器电机微机保护器