当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]近年来,随着高层建筑数量的与日俱增,电梯的需求量也在增加。现阶段我们广泛使用的电梯都是基于LED点阵列的显示系统,显示状态信息比较简单,显示方式比较单调。此外,现在

近年来,随着高层建筑数量的与日俱增,电梯的需求量也在增加。现阶段我们广泛使用的电梯都是基于LED点阵列的显示系统,显示状态信息比较简单,显示方式比较单调。此外,现在的一些电梯里的广告机,虽然改善了电梯轿内的乘坐环境,良好的广告效果也给商家带来了不小的经济效益。但是这种显示装置没有和电梯控制系统融为一体,只是单纯的视频播放而已。

为了使显示和电梯控制系统相融合,打造舒适的乘坐环境,针对现有的电梯系统提出一种由单片机完成不同厂商适配、由ARM/X86统一显示的双核处理方法。该方法中ARM/X86处理器专注于统一通用格式电梯状态信息解码、楼层图片切换或视频播放,从而提高整个系统的实时性与可靠性。针对不同厂商的电梯通信协议,只需要更改单片机的编解码程序便可使整个系统重新工作。

Raspberry Pi(中文名为“树莓派”)是一款由英国的树莓派基金会所开发,以低价硬件及自由软件为学生计算机编程教育而设计的卡片式电脑。其配备一枚700 MHz博通出产的ARM架构BCM2835处理器,256 MB内存(B型已升级到512 MB内存)的微型电脑主板。Raspberry Pi以SD卡为内存硬盘,主板周围有两个USB接口和一个网口,可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和HDMI高清视频输出接口。以上部件全部整合在一张仅比信用卡稍大的主板上,具备所有PC的基本功能。其操作系统采用开源的Linux系统,比如Debian、Arch Linux,自带的Iceweasel、KOffice等软件能够满足基本的网络浏览、文字处理以及计算机学习的需要。

Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。Qt具有优良的跨平台特性,Qt支持下列操作系统:Microsoft Windows 95/98、Microsoft Windows NT、Linux、Solaris、SunOS、HP-UX、Digital UNIX(OSF/1、Tru64)、FreeBSD、BSD/OS,SCO、AIX、OS390、QNX等等。

  1 系统整体设计

1.1 系统框架

本系统的硬件部分主要由接口转接板和显示板组成,系统框图如图1所示。

图1 系统框图

1.2 子系统功能介绍

1.2.1 接口转接板

接收RS-485/CAN总线上的电梯通信协议,并完成协议的解析;承载温度传感设备和挂在I2C总线上的时钟电路,供显示板读取温度和时间信息,完成用户按键的检测与编码。

1.2.2 显示板

接收接口转接板译码后的电梯数据;读取温度和时间信息;实现界面应用程序。

  2 接口转接板子系统设计

接口转接板子系统硬件主要包括ATmega8单片机、DS18B20温度传感器、PCF8563时钟芯片、MAX485芯片等。其接口转接板框图如图2所示。

图2 接口转接板框图

电梯的通信协议有多种,本文以NICE3000通信协议为例实现本系统。

2.1 NICE3000通信协议的通信设定

通信方式:RS-485标准、异步、半双工。

数据格式:1位起始位、8位数据位、1位停止位、无校验位。

通信波特率:9600 bps。

通信地址定义:广播地址为0,外接节点地址为1~31(外招板拨码开关确定),地址同时也表示外招所在楼层;显示板只是接收显示,地址设定为0(拨码),无需通信回复。

数据校验:采用两位异或校验。

数据帧分类:共有两种形式,其中广播帧用于外招显示内容的信息,不需要返回帧,另外还有一种是普通帧,主要完成主控制板与外招之间的控制信息交换。

2.2 帧格式

数据帧采用固定长度,5个字节,结构为帧头、用户数据、帧尾。

帧头:包括1个字节地址,即主控制板发送给外招的标识,从机(外招)根据帧头判断本机是否响应当前通信。如果地址是广播地址,则从机接收信息,但是不用返回。

用户数据包括:数据2个字节,根据发送方向(主到从或是从到主)以及帧形式定义不同的用户数据。

帧尾:包括2个字节校验数据,先发低位,后发高位。

电梯系统接收到的数据帧不能直接显示,需要根据数据帧格式,对数据进行校验,然后解析,最后提取有用的数据给显示系统进行显示。本系统的操作如下:

3 显示板子系统设计

对于彩屏电梯显示系统而言,液晶屏的显示效果对客户的影响是至关重要的。因此,应用层的程序开发相当重要。考虑到图形界面控件的丰富程度、漂亮程度以及开源免费的持续升级等因素,选择了QTE/Qt5图形开发平台。显示板子系统的架构如图3所示。

  图3 子系统的架构图

3.1 Qt的移植

3.1.1 Qt的移植条件

Qt for Embedded Linux是用于嵌入式Linux所支持设备的领先应用程序架构。Qt可以在任何支持Linux的平台上运行,创建具有独特用户体验的具备高效内存效率的设备和应用程序。Qt的移植需要满足以下几个基本条件:

①开发环境:Linux内核2.4或更高;GCC版本3.3或更高;用于MIPS,其GCC版本3.4或更高。

②占用存储空间:存储空间取决于配置,压缩后为1.7~4.1 MB;未压缩为3.6-9.0MB。

③硬件平台:易于载入任何支持带C++编译器和帧缓冲器驱动Linux驱动的处理器;支持ARM、x86、MIPS、PowerPC。

④Raspberry Pi(B型)满足以上条件,故可以进行Qt5的移植。

3.1.2 Qt5的移植准备

在做Qt5移植之前首先做以下移植准备:

①建立一个文件夹/home/opt来存放编译所需的源码和文件。

②下载Raspbian Wheezy镜像,本文采用2012-07-15-wheezy-raspbian.img。

③下载工具链,本文采用gcc-4.7-linaro-rpi-gnueabihf。

④下载交叉编译工具,本文采用cross-compile-tools。

⑤下载Qt5源码。

⑥下载qtjsbackend库的应用补丁。

然后建立文件夹mnt/rasp-pi-rootfs,将Raspbian Wheezy镜像挂载到此文件夹下,并进入Qt5源码文件夹执行初始化代码init-repository。

3.1.3 Qt5的编译

首先进入cross-compile-tools文件夹执行一个脚本fixQualifiedLibraryPaths来修改链接和库路径。

然后编译qtbase,配置如下:

接着再编译其他模块如qtimageformats、qtsvg、qtjsbackend、qtseript、qtxmlpatterns、qtdeelarative、qtsensors、qt3d、qtgraphica1effects、qtjsondb、qtlocation、qtdocgallery等。

当在镜像中编译安装完所有的模块之后,将其复制到SDcard。

3.1.4 安装Qt Creator

从网站http://qt-project.org/wiki/Crcate#QtonPi_App_SDK上下载Qt Crcator安装包,并在Linux系统下对其进行安装配置。由于Qt5需要Qtcreator2.6.0以上的版本作为支持,本文采用2.6.1版本。

3.2 外围部件读取程序

本系统通过读取挂在I2C总线上的实时时钟芯片来获取时间信息,通过温度传感设备获取温度信息。本文以读取实时时钟芯片的数据为例,操作如下:

这些设备的操作通过C代码来实现,然后将其编译成动态链接库的形式,供界面应用程序调用。

3.3 界面应用程序的实现

图形界面开发是Qt/Embedded开发的一个重点,本系统的界面结构包括楼层信息区域、运行方向区域、图片显示区域、温度时间显示区域、状态显示区域、本系统涉及到视图的跳转、数据的传递、控件的使用、布局和事件处理等等。其程序流程如图4所示。

图4 程序流程图

整个显示界面通过MainWindow类实现,该类继承自QmainWindow,而各显示区域均通过继承QWidget类来实现。如图3所示,通过定时器1每隔30 ms调用Main-Window的槽函数checkLiftStstus()来获取由C函数open_uart485(int data[])解析的串口数据。

connect(timer,SIGNAL(timeout()),this,SLOT(checkLiftStatus()));//获取电梯信息

将解析后的信息传递给楼层信息区域,运行方向区域,状态显示区域分别进行显示。

indicatorDirection(data[0]); //方向信息

indicatorState(data[1]); //状态信息

liftCurrentFloorNum(data[2]);//楼层信息

图片视频显示区域是在类ShowController中实现的,当系统需要显示图片时,该类调用ImageView类的对象负责图片显示;当系统需要显示视频时,该类调用PlayerWidget类的对象负责处理视频播放。ImageView类和PlayerWidget类也是继承自Qwidget.ImageView类负责获取SD卡上的图片实例,将其显示在正确的位置,并通过定时器2实现图片的切换。PlayerWidget类负责启动MPlayer,并控制视频显示到正确的位置。

温度时间显示区域是在TimeView类和temperatureView类中实现。TimeView类的成员函数getCurrentTime()通过调用动态链接库的C函数getpcf8563Time(pcf8563_time*pTime)来读取挂在I2C总线上的时钟芯片的时钟信息,并将其显示在正确的区域上。

temperatureView类主要用于显示温度数据,而真正获取温度数据的过程是在TemperatureHandler类中实现的。开辟一个新的线程,通过定时器3每隔500 ms在槽函数readData()中调用一次动态链接库的C函数therm_dsl8b20(long*date)来读取温度传感器的数据。

temperatureThread=new QThread(this); //开辟新线程

connect(temptimer,SIGNAL(timeout()),this,SLOT(readData())); //读取温度

4 系统调试结果

根据模拟的NICE3000通信协议、外围部件的操作及Qt5的图形界面编程,实现了电梯彩屏显示系统,其硬件设备图和调试结果图如图5、图6所示。

图5 硬件设备图

图6 调试结果

  结语

本文对基于Raspberry Pi并利用Qt5编程来实现的电梯彩屏显示系统进行了阐述。首先介绍了整个系统的构架;接着在接口转接板子系统中介绍了NICE3000通信协议,并对其进行解析;然后在显示板子系统中介绍了外围部件的操作,以读取实时时钟芯片的数据为例;最后根据解析、读取的数据利用Qt5编程实现了电梯彩屏显示系统。本文对传统的LED点阵列电梯显示系统提供了有效的改进方法,改变了其单调的显示方式,成本低廉,更具商业价值。

0次

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭