论文部分内容阅读
摘要:随着信息技术的发展,仪器和家电的智能化、网络化将成为一种趋势。在使用和普及中,智能设备与其他设备的接口问题也不断的突出。文章讨论了基于mini2440开发板的嵌入式多功能接口转换器实现方法,分析并改进了开发板与单片机通过串口连接的方案,使得接口转换器可以实现在串口、USB接口和网络接口之间相互传送数据;并通过建立嵌入式Web服务器来支持网页形式的访问以及快速、准确的控制。
关键词:接口转换器;串行接口;USB接口;网络接口;嵌入式系统
中图分类号:TP311文献标识码:A文章编号:1009-2374(2009)16-0018-02
随着信息技术的发展,仪器和家电的智能化、网络化将成为一种趋势。这些智能设备使用各式各样的接口与外界通信,包括串口、并口、USB接口、网络接口、红外接口,等等。在使用和普及中,智能设备与其他设备的接口问题也不断的突出。文章在嵌入式软硬件平台上,实现各个接口之间的相互通信和数据转换,使其成为智能仪器仪表和智能家电实现网络控制与网络数据传输的桥梁。
一、嵌入式软硬件总体结构设计
嵌入式多功能接口转换器即经过设计的mini2440开发板的作用是控制端(如PC机)和智能设备之间通信。它将带有不同接口的设备信号统一通过网络接口发送到PC机,同时通过网络接收PC机的命令,并发送到各个设备。为了验证嵌入式多功能接口转换器的实际使用效果,不仅要做接口转换器,还需要在实验板上嵌入Linux操作系统并架设Web服务器以及寻找一台带有智能控制接口的设备。文章实验中为一台电风扇增加了一块控制板,将其改造成一台智能家电,通过接口转换器连接到PC机,实现PC机对电风扇的控制和数据传输。用户在PC和网络平台下通过Web登录客户端,登录需要验证,用户成功登录后可以执行以下操作:打开风扇、关闭风扇、设置风扇开关的温度临界值。
二、单片机控制板设计
(一)硬件电路设计
风扇控制板是一块集成到风扇中的带AT89C2051单片机的电路板。它有三个作用:第一,通过RS-232与接口转换器连接,负责通讯;第二,控制电风扇的开关与旋转;第三,采集环境温度。通过设备控制板,成功得将一台普通风扇,改装成一台带串口控制的智能风扇。
(二)时序控制编码语言选择
在本系统中,对数字温度传感器DB18B20的控制,时序控制是程序的难点。C语言只能精确到几十微秒,对于需要精确到的DB18B20来说,控制误差太大,而且写成的代码在单片机中编译后的代码长度很容易超出单片机的程序映射空间,在用KEIL进行编写调试程序的时候,编译出错,有时还会提示一些其他类的错误。因此最终程序全部用汇编语言实现。
主程序不断扫描网络接口和串口,一旦收到UDP数据包,就对数据包内容进行分析,如果是温度数据,则将温度数据写入U盘,同时用UDP数据包发送给PC机。主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。先启动DS18B20开始转换,再读出温度转换值。
(三)串口
嵌入式开发板的UART单元提供独立的异步串行I/O端口——九针串口,可以在中断模式下工作。支持的最高波特率为115200bps,每个UART通道包括2个16位FIFO,分别用于接收和发送数据。串口作为成熟的标准接口,因为其控制简单,实际上只需接发送、接收和地线三根就可以实现全双工的通讯。在控制系统中采用电平转换芯片MAX232把-12v到+12v的PC或者开发板电压降低成TTL电平来与单片机AT89C2051实现通讯。下面是在实验中几个在串口传输时的关键设置:
1.在实际的操作当中,串口线有母线与子线两种,在嵌入式开发当中,不同设备的连接要认真选择其中的一种,否则会出现将发送线接到另一头发送线的情况。
2.本系统的mini2440开发板只有一个串口,串口既要担任终端与实验使用的功能,这个时候我们通过配置Linux内核将串口终端的功能去掉就不会继续产生冲突了。
3.在单片机与实验开发板的连接当中,应尽量选择低的波特率。高的波特率对传送的误差要求非常苛刻,对于用一些比较简陋的设备做成的自制开发板,由于线路布局不是很规范,或多或少存在电磁干扰,即便是添加了许多退耦电容,一些无法避免的干扰还是会影响高波特率的数据传输。而选择低的波特率允许较大范围内的误差,对于传输速率要求不是很高的设备是较为妥当的选择。
4.在使用MAX232电平的时候,按芯片手册上写的用1uF的电解电容不能成功转换电平,由于电解电容本身固有的缺陷,在以104pF的陶瓷电容代替便可成功的将-12~+12v的电压降成TTL电平。
5.串口的控制过程有中断和查询等多种方式,但是文章通过实验发现从效率和反应的实时性上,中断方式都优于查询。
(四)网络接口
在本控制系统实验中,网口主要负责开发板与PC机的通讯,嵌入式 Linux支持网络通信和Boa服务器,使得开发板本身就可以担任一些功能简单的服务器。Boa的设计目标是速度和安全,在实验中验证得出在嵌入式开发板的应用上,Boa的性能要好于Apache服务器。
(五)PC端访问控制软件:Web客户端
PC端软件提供一个用户界面,能控制风扇电源开关并显示风扇环境温度,读取接口转换器U盘中的温度历史数据并显示和存盘。还可以根据预设的温度值实现风扇的自动开关,比如,当环境温度高于预设温度时,风扇电源自动打开;当环境温度低于预设温度时,风扇电源自动关闭。
三、测试内容及结果
在本控制系统的实验中,使用交叉编译配置linux系统的内核:编译到内核和编译成模块两种模式。例如增加对网络的支持,可以把相应部分编译到内核中(build-in),也可以把该部分编译成模块(module)动态调用。文章实验中将经常使用的部分直接编译到内核中,这样在内核启动时就可以自动支持相应部分的功能,方便、快速,也不会使内核太庞大。内核的编译步骤如下:配置选项→生成依赖(dependency)信息,清除旧的编译结果→编译二进制内核映像文件→编译模块→最后生成zImage.gz文件。
系统测试需要验证以下几种接口之间的数据转换:(1)网络接口与串口之间;(2)网络接口与USB接口之间;(3)串口到USB接口。测试结果表明,各项功能运行正常,实现了在多种接口间的数据转换,软硬件系统达到了预期目标。
四、结论
文章通过对嵌入式多功能接口转换器的研究,设计了基于mini2440开发板的嵌入式多功能接口转换器的软硬件,精简了电路设计,使得接口转换器可以实现在串口、USB接口和网络接口之间相互传送数据,并通过建立嵌入式Web服务器来支持网页形式的访问以及快速、准确的控制。
参考文献
[1]胥静.嵌入式系统设计与开发实例详解——基于ARM的应用[M].北京:北京航空航天大学出版社,2005.
作者简介:洪玉玲(1982-),女,福建厦门人,集美大学计算机工程学院助教,硕士,研究方向:嵌入式系统、智能控制。
关键词:接口转换器;串行接口;USB接口;网络接口;嵌入式系统
中图分类号:TP311文献标识码:A文章编号:1009-2374(2009)16-0018-02
随着信息技术的发展,仪器和家电的智能化、网络化将成为一种趋势。这些智能设备使用各式各样的接口与外界通信,包括串口、并口、USB接口、网络接口、红外接口,等等。在使用和普及中,智能设备与其他设备的接口问题也不断的突出。文章在嵌入式软硬件平台上,实现各个接口之间的相互通信和数据转换,使其成为智能仪器仪表和智能家电实现网络控制与网络数据传输的桥梁。
一、嵌入式软硬件总体结构设计
嵌入式多功能接口转换器即经过设计的mini2440开发板的作用是控制端(如PC机)和智能设备之间通信。它将带有不同接口的设备信号统一通过网络接口发送到PC机,同时通过网络接收PC机的命令,并发送到各个设备。为了验证嵌入式多功能接口转换器的实际使用效果,不仅要做接口转换器,还需要在实验板上嵌入Linux操作系统并架设Web服务器以及寻找一台带有智能控制接口的设备。文章实验中为一台电风扇增加了一块控制板,将其改造成一台智能家电,通过接口转换器连接到PC机,实现PC机对电风扇的控制和数据传输。用户在PC和网络平台下通过Web登录客户端,登录需要验证,用户成功登录后可以执行以下操作:打开风扇、关闭风扇、设置风扇开关的温度临界值。
二、单片机控制板设计
(一)硬件电路设计
风扇控制板是一块集成到风扇中的带AT89C2051单片机的电路板。它有三个作用:第一,通过RS-232与接口转换器连接,负责通讯;第二,控制电风扇的开关与旋转;第三,采集环境温度。通过设备控制板,成功得将一台普通风扇,改装成一台带串口控制的智能风扇。
(二)时序控制编码语言选择
在本系统中,对数字温度传感器DB18B20的控制,时序控制是程序的难点。C语言只能精确到几十微秒,对于需要精确到的DB18B20来说,控制误差太大,而且写成的代码在单片机中编译后的代码长度很容易超出单片机的程序映射空间,在用KEIL进行编写调试程序的时候,编译出错,有时还会提示一些其他类的错误。因此最终程序全部用汇编语言实现。
主程序不断扫描网络接口和串口,一旦收到UDP数据包,就对数据包内容进行分析,如果是温度数据,则将温度数据写入U盘,同时用UDP数据包发送给PC机。主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。先启动DS18B20开始转换,再读出温度转换值。
(三)串口
嵌入式开发板的UART单元提供独立的异步串行I/O端口——九针串口,可以在中断模式下工作。支持的最高波特率为115200bps,每个UART通道包括2个16位FIFO,分别用于接收和发送数据。串口作为成熟的标准接口,因为其控制简单,实际上只需接发送、接收和地线三根就可以实现全双工的通讯。在控制系统中采用电平转换芯片MAX232把-12v到+12v的PC或者开发板电压降低成TTL电平来与单片机AT89C2051实现通讯。下面是在实验中几个在串口传输时的关键设置:
1.在实际的操作当中,串口线有母线与子线两种,在嵌入式开发当中,不同设备的连接要认真选择其中的一种,否则会出现将发送线接到另一头发送线的情况。
2.本系统的mini2440开发板只有一个串口,串口既要担任终端与实验使用的功能,这个时候我们通过配置Linux内核将串口终端的功能去掉就不会继续产生冲突了。
3.在单片机与实验开发板的连接当中,应尽量选择低的波特率。高的波特率对传送的误差要求非常苛刻,对于用一些比较简陋的设备做成的自制开发板,由于线路布局不是很规范,或多或少存在电磁干扰,即便是添加了许多退耦电容,一些无法避免的干扰还是会影响高波特率的数据传输。而选择低的波特率允许较大范围内的误差,对于传输速率要求不是很高的设备是较为妥当的选择。
4.在使用MAX232电平的时候,按芯片手册上写的用1uF的电解电容不能成功转换电平,由于电解电容本身固有的缺陷,在以104pF的陶瓷电容代替便可成功的将-12~+12v的电压降成TTL电平。
5.串口的控制过程有中断和查询等多种方式,但是文章通过实验发现从效率和反应的实时性上,中断方式都优于查询。
(四)网络接口
在本控制系统实验中,网口主要负责开发板与PC机的通讯,嵌入式 Linux支持网络通信和Boa服务器,使得开发板本身就可以担任一些功能简单的服务器。Boa的设计目标是速度和安全,在实验中验证得出在嵌入式开发板的应用上,Boa的性能要好于Apache服务器。
(五)PC端访问控制软件:Web客户端
PC端软件提供一个用户界面,能控制风扇电源开关并显示风扇环境温度,读取接口转换器U盘中的温度历史数据并显示和存盘。还可以根据预设的温度值实现风扇的自动开关,比如,当环境温度高于预设温度时,风扇电源自动打开;当环境温度低于预设温度时,风扇电源自动关闭。
三、测试内容及结果
在本控制系统的实验中,使用交叉编译配置linux系统的内核:编译到内核和编译成模块两种模式。例如增加对网络的支持,可以把相应部分编译到内核中(build-in),也可以把该部分编译成模块(module)动态调用。文章实验中将经常使用的部分直接编译到内核中,这样在内核启动时就可以自动支持相应部分的功能,方便、快速,也不会使内核太庞大。内核的编译步骤如下:配置选项→生成依赖(dependency)信息,清除旧的编译结果→编译二进制内核映像文件→编译模块→最后生成zImage.gz文件。
系统测试需要验证以下几种接口之间的数据转换:(1)网络接口与串口之间;(2)网络接口与USB接口之间;(3)串口到USB接口。测试结果表明,各项功能运行正常,实现了在多种接口间的数据转换,软硬件系统达到了预期目标。
四、结论
文章通过对嵌入式多功能接口转换器的研究,设计了基于mini2440开发板的嵌入式多功能接口转换器的软硬件,精简了电路设计,使得接口转换器可以实现在串口、USB接口和网络接口之间相互传送数据,并通过建立嵌入式Web服务器来支持网页形式的访问以及快速、准确的控制。
参考文献
[1]胥静.嵌入式系统设计与开发实例详解——基于ARM的应用[M].北京:北京航空航天大学出版社,2005.
作者简介:洪玉玲(1982-),女,福建厦门人,集美大学计算机工程学院助教,硕士,研究方向:嵌入式系统、智能控制。