嵌入式蓝牙PSTN语音接入点的设计与实现

全宇宙最优秀 分享 时间: 收藏本文

【简介】感谢网友“全宇宙最优秀”参与投稿,下面就是小编给大家分享的嵌入式蓝牙PSTN语音接入点的设计与实现(共7篇),希望大家喜欢!

篇1:嵌入式蓝牙PSTN语音接入点的设计与实现

嵌入式蓝牙PSTN语音接入点的设计与实现

摘要:首先,阐述蓝牙在公共交换电话网络PSTN中的一种应用――三合一电话。然后,分别从硬件、驱动程序、应用软件三个方面进行详细介绍。最后,给出测试结果,并提出改进方案。

关键词:蓝牙公共交换电话网络PSTN接入点μClinux设备驱动程序

引言

源码开放的μClinux由于其强大的网络功能和较低的成本,得到了广泛的应用。嵌入式蓝牙公共交换电话网络PSTN(PublicSwitchedTelephoneNetwork)语音接入点,就是我们和广东省电信科学研究院合作,在μClinux系统上开发的一种具有广阔前景的应用。其应用场景如图1所示。

蓝牙GSM双模手机在进入蓝牙PSTN语音接入点的信号覆盖范围后,即自动通过接入点在PSTN网络上登记,这样用户的话务就被转移到PSTN网络,使用时只需缴纳固定电话费;网关具有小型交换机的功能,可以为多个蓝牙手机提供类似的服务;而且同一个接入点信号覆盖范围之内的蓝牙手机间,还可以不经过PSTN直接进行相互间通话,就像对讲机一样,不用付费。本文主要介绍接入点软硬件以及设备驱动程序的设计与实现。

1硬件的设计与实现

嵌入式蓝牙PSTN语音接入点的硬件系统框图如图2所示。整个接入点主要由网关控制模块、电话线路接口模块和蓝牙收发模块组成。

1.1网关控制模块

网关控制模块是整个网关软件的运行平台。ΜClinux操作系统运行于此硬件平台之上,而所有应用软件又运行于操作系统之上。复杂的控制流程以及大量的外扩模块要求MPU具有较强的处理能力。经多方权衡,本设计最终选用了Motorola公司的ColdFire嵌入式处理器MCF5272。

MCF5272内部的SRAM和ROM对于运行μClinux操作系统是远远不够的。本设计对MCF5272的RAM和ROM进行了扩充,外扩了16MB的SDRAM和4MB的FlashROM。这样的存储器配置不仅满足了语音接入点软件的需要,还为网关增加各种功能留有较多的余地。

1.2电话线路接口模块

电话线路接口模块是网关和PSTN的接口,由线路切换继电器、电话线接口芯片、DTMF接收电路、DTMF发送电路和FSK解调及振铃接收电路组成。它通过MCF5272的12根GPIO线和4个外部中断线和网关控制模块相连。线路切换继电器用于实现电话线上的信号在振铃接收电路和语音电路之间的切换,即实现摘机挂机的功能。在待机状态下继电器触点切换在振铃接收电路一侧,等待接收振铃信号。当需要摘机时,MCF5272控制继电器切换到话音电路一侧。

电话线路接口芯片选用Philips公司的TEA1062A。TEA1062A把电话线上送来的模拟语音信号放大后发送到蓝牙收到模块的PCM编解码器;相反,也把PCM编解码器送来的语音信号放大后,放到电话线上传输。此外,它还提供了消侧音、自动增益控制等功能。

网关还需具备转发来电显示信息的功能。常见的来电显示标准分为DTMF和FSK两种。我国的来电显示国家标准是FSK制式的.,大部分PSTN交换机也支持FSK标准的来电显示信息;但是也有少量PSTN交换机和一些用户内部交换机发送的是DTMF标准的来电显示信息。我们HOLTEK的HT9170D以及HT9032C芯片分别接收DTMF及FSK来电显示信息。

网关向PSTN交换机拨号和普通的电话一样,采用DTMF信号,同时也可以用DTMF信号向PSTN交换机发送一些信令信息。网关的DTMF发送选用FOLTEK的HT9200A芯片。

1.3蓝牙收发模块

蓝牙收发模块包括蓝牙射频电路、基带处理电路和PCM编解码电路,通过MCF5272的UART1和网关控制模块相连。语音信号通过PCM编解码器MC145483和电话接口芯片TEA1062A连接。语音信号通过PCM编解码器MC145483和电话接口芯片TEA1062A连接。MCF5272把蓝牙模块接收到的数据通过协议栈解释为摘机、挂机、拨号、来电显示等命令,并通过数据线控制电话语音接收与拨叫电路的各种操作。PSTN市话网用户线与电话线路接口模块连接,电话线路接口模块把外部PSTN电话网的振铃信号和来电显示信息通过数据线传递给MCF5272。MCF5272再把这些信号通过蓝牙软件栈打成数据包并送给蓝牙模块,由蓝牙模块通过无线信道发送给终端。电话线上的模拟语音信息通过PCM编解码器编码后经蓝牙模块发送给终端,同时蓝牙模块接收终端发送过来的语音数据,经过PCM编解码器解

码,形成模拟语音信号,通过电话接口芯发送到电话线上。本设计中的蓝牙基带和射频电路由CSR的BlueCore01b芯片加上功放、低噪放、收发切换开关、滤波器和一些外围电路组成。

2驱动程序的设计与实现

2.1μClinux设备驱动程序概述

在μClinux下,所有的硬件设备都被视为文件,从设备接收输入数据和将输出送到设备就像从普通文件接收输入和将输出送到文件一样,可以使用read、write()等系统调用。应用程序通过系统调用和内核交互,而内核则通过设备驱动程序和具体硬件交互,如图3所示。一般来说,操作系统内核需要访问三类主要设备:字符型设备、块型设备以及网络设备。本接入点的驱动程序属于字符设备驱动程序。

每个驱动都有一个称为file_operations的数据结构,包含指向驱动程序内部大多数函数的指针。当系统引导时,驱动程序初始化函数将file_operations结构的指针送给内核,内核就可以通过该指针访问驱动程序内的函数。因而,这些函数就是进入驱动程序的基本入口点。当用户程序执行系统调用时,将导致驱动程序内相应的函数被调用。

2.2需求分析

嵌入式蓝牙PSTN语音接入点的硬件设计中,电话线路接口模块、蓝牙收发模块是外扩的模块,需要在μClinux内核为基提供支持。

蓝牙收发模块通过MCF5272的串口2和网关控制模块相连,因而直接使用μClinux自带的串口驱动程序就可以完成对此模块的控制;而电话线路接口模块通过GPIO口以及外部中断线与网关控制模块相连,必须由我们自由提供驱动程序。

2.3FSK来电显示芯片驱动的设计与实现

FSK来电显示驱动的主要任务就是完成FSK来电显示信息的接收,总工作流程如图4所示。其主要功能由设备驱动程序基本入口点中的open、release、read、ioctl、select函数,以及设备初始化函数、中断处理函数、下半部分处理函数、定时器超时处理函数完成。下面对其中一些关键的函数进行简要介绍。

(1)read函数

read、write称为对设备的I/O操作。当用户进程对设备执行I/O操作时,设备可能并不具备进行I/O操作的条件。这些情况下,用户进程可以选择继续等待,即通过interruptible_sleep_on()函数让用户进程进入睡眠状态;也可以选择不等待,立即返回。这就产生一两种类型的I/O操作,即阻塞型I/O和非阻塞型I/O。我们的驱动同时支持阻塞型和非阻塞型的读操作。

图4

(2)ioctl函数

设备特殊文件之所以特殊就是因为它代表一个设备,可以通过它对设备的属性进行设置,这和对设备的I/O操作不同。我们通过ioct1函数来实现,ioct1的实质就是向设备发送命令来改变设备的属性。在实现此驱动的过程中发现,FSK来电显示芯片在没有真正的FSK数据的时候也会受到干扰,使数据线上有电平的跳动,从而产生不应该产生的中断对系统的性能造成影响,因而提供了2个ioct1命令给用户进程,来控制FSK中断的打开与关闭。

(3)select函数

为了使用户进程可以使用I/O多路转接技术,在驱动程序中实现了select函数。当用户进程执行select系统调用的时候,每一个加入select测试集合的设备的select函数都被调用,如果其中任何一个或多个设备可以进行要求的I/O操作,则select返回;否则,通过select_wait()函数让用户进程进入睡眠状态,直到有任何一个设备可以进行要求的I/O操作或超时为止。

(4)中断处理函数及下半部分处理函数

FSK来电显示芯片只有1根数据线连接到CPU的GPIO口上。这根数据线的每一字节数据都以0开始、以1结束,中间是8位的ASCII码,最低位最先发送,在没有数的时候数据线一直保护高电平。由于FSK来电显示数据具有这种特殊的格式,把这根数据线同时接到CPU的外部中断线上,并设置为下降沿触发,这样每来1字节数据就会产生一次中断。FSK数据帧由若干字节这样的数据组成。FSK数据速率是1.2kb/s,因而1个bit延续约0.83ms。这样收一个字节的数据就需要耗费约8.3ms的时间。显然在中断处理程序里面接收数据是不合适的,所以在中断处理程序中只调用mark_up函数标记数据的到来,而把接收及处理数据的任务留到下半部分程序中完成。

下半部分程序负责接收1字节的FSK来电显示数据,由于1字节数据中可能有多个下降延,所以在进入处理函数后首先要关闭FSK中断,然后每0.83ms读一次GPIO口,接收一位的数据,收完1字节数据后要打开FSK中断,以接收下一字节的数据。

根据本次FSK中断是否为此次通信的每一个中断,可以判断本次接收的是否为FSK数据帧的第一个字节,如果是,那么将启动一个内核定时器,其超时时间设为1s(因为一个FSK数据帧的传输时间不会超过1s)。在定时器超时后,内核将调用定时器超过时处理函数,提取出主叫用户的电话号码,并通过wake_u

p函数唤醒任何等待读此设备的用户进程。

图5

2.4DTMF语音拨号、来电显示驱动的设计与实现

由于DTMF芯片要提供双音多频拨号的功能,所以与FSK芯片驱动相比,DTMF芯片驱动中多了一个write函数。DTMF芯片的多音多频拨号部分有2根线和CPU相连:1根数据线、1根时钟线。Write函数实际上就是根据芯片的写时序把用户进程发来的数据传送到芯片上去。

相比于FSK来电显示信息的接收而言,DTMF来电显示信息的接收就比较容易了。DTMF来电显示芯片提供了1根中断信号线和4根并行数据线,每次中断来只需要读并行信号线,并进行简单的解码、缓存工作就可以了。此外为了方便,把摘、挂机,抬高、拉低静音等命令者包含此驱动的iotcl命令集中了;和FSK驱动一样,为了防止干扰对DTMF来电显示信息的影响,也在iotcl命令提供了打开、关闭DTMF来电显示中断的命令。

3应用软件的设计与实现

接入点应用程序位于前面介绍的硬件平台以及设备驱动程序之上,三者之间的关系如图5所示。接入点应用程序是整个软件的核心,它与串口驱动程序、FSK来电显示驱动程序、DTMF来电显示驱动程序、DTMF拨号驱动程序、Flash驱动程序、振铃驱动程序交互,并通过后五个驱动程序控制具体硬件完成相关功能。

接入点可以对允许接入的蓝牙终端属性进行设备,只有被授权的蓝牙终端才能通过接入点访问PSTN。接入点的Flash可设置多个允许接入的蓝牙终端,并可通过与网关并联的电话进行增添、删除一个或全部删除终端设置的操作。

对于设置为双模的蓝牙手机,必须先向网络登记,网络返回成功信息的方可与网关建立物理和逻辑链路;而在双模手机主动与网关拆开物理链路时,也必须向网络登记。接入点可以发现已登记的双模手机是否离开本网关信号覆盖范围,并自动向网络登记,将双模手机的话务切换回移动网络中,而并模终端无需这样的操作。网关可同时与7个蓝牙终端建立ACL(AsynchronousConnectionLess)

对于不同调制方式(FSK及DTMF)来电均能接收号码以及振铃,并根据来电号码分析被呼叫方,根据蓝牙无绳电话协议CTP(CordlessTelephonyProfile)建立起TCS(TelephoneControlSpecification)链路、SCO(SynchronousConnectionOriented)链路。当来电显示为非特服号开头的号码时,表示来电来普通电话,所有与网关相连的分机终端都振铃。某一终端接听后,其它终端停止振铃,回到空闲状态。当来电显示为特服号开头的时候,表示来电为访问特定终端的话务,可以分析来电显示的格式得到接入顺序号,并使对应的蓝牙终端振铃。蓝牙双模或者单模终端能通过网关、PSTN网络拨打外部电话,网关支持终端多次拨号,并且外部电话能收到来电显示。

图6

我们设计的应用程序流程如图6所示。在μClinux系统中,此应用程序被视为一个用户进程。在系统启动rc脚本文件的末尾添加该进程,则系统在完成初始化工作后会自动启动该进程。对用户进程而言,硬件设备被视为设备描述文件,它和普通的文件没有区别,可用文件描述符(一个非负整数)表示。在程序启动时,用Linux系统提供的open函数打开这些设备,同时设置这些设备的工作方式;启动蓝牙协议栈,并设置工作模式、服务发现数据库和其它参数,使网关始终处于被发现和被动建链的一方。

此后应用程序地侦听、等待各设备数据的到来,我们采用了I/O多咱转接的技术来实现对多个描述符的读、写和管理。该技术的基本思想是:先构造一张有关描述符的表,然后调用一个函数,它要到描述符中的一个已准备好表示I/O时才返回。在返回时,它告诉进程哪一个描述符已准备好可以进行I/O。select函数可以执行I/O多路转换,传向该函数的参数告诉内核我们所关心的描述符、对于每个描述符我们所关心的条件(是否读一个给定的描述符?是否想写一个给定的描述符?是否关心一个描述符的异常条件?)以及希望等待的时间(可以永远等待、等待固定时间或完全不等待)。我们在程序中设置了永远等待,即只有所指定的描述符中的一个已准备好或捕捉到一个信号才返回。从select返回时,内核告诉我们已准备好的描述符的数量和哪一个描述符已准备好读、写或异常条件,应用程序这个信息进入相应的处理子模块。

结语

基于嵌入式μClinux系统的蓝牙PSTN网关实现了上术的所有功能,使蓝牙三合一电话的应用成为现实。最多7个蓝牙终端能同时与该网关建立物理和逻辑链路,网关能建立起一条语音链路。经实测,在传输距离不超过10m的前提下,话音质量良好,清晰无失真;在传输距离超过10m后,由于蓝牙的自动功率控制功能,会增大发射功率,模拟语音电路部分引入的电磁干扰噪声增加,影响通话效果,此问题可以通过调整PCB布局布线和对易干扰电路增加屏蔽来消除。根据标准蓝牙协议,蓝牙终端和网关之间最多可建立起3条语音链路,这将在下一个版本中加以改进。

篇2:嵌入式蓝牙PSTN语音接入点的设计与实现

嵌入式蓝牙PSTN语音接入点的设计与实现

摘要:首先,阐述蓝牙在公共交换电话网络PSTN中的一种应用――三合一电话。然后,分别从硬件、驱动程序、应用软件三个方面进行详细介绍。最后,给出测试结果,并提出改进方案。

关键词:蓝牙 公共交换电话网络PSTN 接入点 μClinux 设备驱动程序

引言

源码开放的μClinux由于其强大的网络功能和较低的成本,得到了广泛的应用。嵌入式蓝牙公共交换电话网络PSTN(Public Switched Telephone Network)语音接入点,就是我们和广东省电信科学研究院合作,在μClinux系统上开发的一种具有广阔前景的应用。其应用场景如图1所示。

蓝牙GSM双模手机在进入蓝牙PSTN语音接入点的信号覆盖范围后,即自动通过接入点在PSTN网络上登记,这样用户的话务就被转移到PSTN网络,使用时只需缴纳固定电话费;网关具有小型交换机的功能,可以为多个蓝牙手机提供类似的服务;而且同一个接入点信号覆盖范围之内的蓝牙手机间,还可以不经过PSTN直接进行相互间通话,就像对讲机一样,不用付费。本文主要介绍接入点软硬件以及设备驱动程序的.设计与实现。

1 硬件的设计与实现

嵌入式蓝牙PSTN语音接入点的硬件系统框图如图2所示。整个接入点主要由网关控制模块、电话线路接口模块和蓝牙收发模块组成。

1.1 网关控制模块

网关控制模块是整个网关软件的运行平台。ΜClinux操作系统运行于此硬件平台之上,而所有应用软件又运行于操作系统之上。复杂的控制流程以及大量的外扩模块要求MPU具有较强的处理能力。经多方权衡,本设计最终选用了Motorola公司的ColdFire嵌入式处理器MCF5272。

MCF5272内部的SRAM和ROM对于运行μClinux操作系统是远远不够的。本设计对MCF5272的RAM和ROM进行了扩充,外扩了16MB的SDRAM和4MB的Flash ROM。这样的存储器配置不仅满足了语音接入点软件的需要,还为网关增加各种功能留有较多的余地。

1.2 电话线路接口模块

电话线路接口模块是网关和PSTN的接口,由线路切换继电器、电话线接口芯片、DTMF接收电路、DTMF发送电路和FSK解调及振铃接收电路组成。它通过MCF5272的12根GPIO线和4个外部中断线和网关控制模块相连。线路切换继电器用于实现电话线上的信号在振铃接收电路和语音电路之间的切换,即实现摘机挂机的功能。在待机状态下继电器触点切换在振铃接收电路一侧,等待接收振铃信号。当需要摘机时,MCF5272控制继电器切换到话音电路一侧。

电话线路接口芯片选用Philips公司的TEA1062A。TEA1062A把电话线上送来的模拟语音信号放大后发送到蓝牙收到模块的PCM编解码器;相反,也把PCM编解码器送来的语音信号放大后,放到电话线上传输。此外,它还提供了消侧音、自动增益控制等功能。

网关还需具备转发来电显示信息的功能。常见的来电显示标准分为DTMF和FSK两种。我国的来电显示国家标准是FSK制式的,大部分PSTN交换机也支持FSK标准的来电显示信息;但是也有少量PSTN交换机和一些用户内部交换机发送的是DTMF标准的来电显示信息。我们HOLTEK的HT9170D以及HT90

[1] [2] [3] [4] [5]

篇3:嵌入式V5接口系统设计与实现

嵌入式V5接口系统设计与实现

本文分析了现有综合业务传输网在接入网和本地交换机之间连接方式的不足,结合传输网的`特点,引入V5接口.文章对V5接入网AN侧系统软件部分分模块进行分析和设计,并对AN侧系统管理方案加以描述,验证了V5接入网系统的可行性.

作 者:李懋 詹必胜  作者单位:华中师范大学高等职业技术学院,电子信息工程系,武汉,430079 刊 名:高等函授学报(自然科学版) 英文刊名:JOURNAL OF HIGHER CORRESPONDENCE EDUCATION(NATURAL SCIENCES) 年,卷(期): 20(2) 分类号:N39 关键词:嵌入式V5接口   接入网   本地交换机   Nucleus实时操作系统  

篇4:嵌入式设备鼠标接口的设计与实现

嵌入式设备鼠标接口的设计与实现

摘要:分析了PS/2鼠标的接口和通信协议,介绍了PS/2鼠标与单片机的接口设计方法,配合点阵LCD显示器,实现了嵌入式设备的图形化人机接口(GUI)。

关键词:PS/2接口 双向同步串行协议 GUI

当前嵌入式系统技术已得到了广泛应用,但传统嵌入式系统的人机接口多采用小键盘操作的文本菜单方式,用户操作较为不便。本文介绍了一种利用PS/2接口鼠标,在点阵LCD的单片机系统上实现图形化用户界面的方案。用窗口菜单和图形按钮取代了传统的键盘操作,具有成本低、效果好等特点,具有很强的实用性。

(本网网收集整理)

1 PS/2接口和协议

1.1 接口的物理特性

PS/2接口用于许多现代的鼠标和键盘,由IBM最初开发和使用。物理上的PS/2接口有两种类型的连接器:5脚的DIN和6脚的mini-DIN。图1就是两种连接器的引脚定义。使用中,主机提供+5V电源给鼠标,鼠标的地连接到主机电源地上。

1.2 接口协议原理

PS/2鼠标接口采用一种双向同步串行协议。即每在时钟线上发一个脉冲,就在数据线上发送一位数据。在相互传输中,主机拥有总线控制权,即它可以在任何时候抑制鼠标的发送。方法是把时钟线一直拉低,鼠标就不能产生时钟信号和发送数据。在两个方向的传输中,时钟信号都是由鼠标产生,即主机不产生通信时钟信号。

如果主机要发送数据,它必须控制鼠标产生时钟信号。方法如下:主机首先下拉时钟线至少100μs抑制通信,然后再下拉数据线,最后释放时钟线。通过这一时序控制鼠标产生时钟信号。当鼠标检测到这个时序状态,会在10ms内产生时钟信号。如图3中?A?时序段。主机和鼠标之间,传输数据帧的时序如图2、图3所示。

2 PS/2鼠标的工作模式和协议数据包格式

2.1 PS/2鼠标的四种工作模式

PS/2鼠标的四种工作模式是:Reset模式,当鼠标上电或主机发复位命令?0xFF?给它时进入这种模式;Stream模式?鼠标的默认模式,当鼠标上电或复位完成后,自动进入此模式,鼠标基本上以此模式工作;Remote模式,只有在主机发送了模式设置命令?0xF0?后,鼠标才进入这种模式;Wrap模式,这种模式只用于测试鼠标与主机连接是否正确。

2.2 数据包结构

PS/2鼠标在工作过程中,会及时把它的状态数据发送给主机。发送的数据包格式如表1所示。

表1 鼠标发送的数据包格式

Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0Byte1Y overflowX oberflowX sipn bitX sign bitAlways 1Middle BtnRight BtnLeft BtnByte2X MovementByte3Y MovementByte4Z Movement

Byte1中的Bit0、Bit1、Bit2分别表示左、右、中键的状态,状态值0表示释放,1表示按下。Byte2和Byte3分别表示X轴和Y轴方向的移动计量值,是二进制补码值。Byte4的低四位表示滚轮的移动计量值,也是二进制补码值,高四位作为扩展符号位。这种数据包由带滚轮的三键三维鼠标产生。若是不带滚轮的三键鼠标,产生的数据包没有Byte4?其余的相同。

3 设计与实现

3.1 接口设计

因为PS/2鼠标接口采用双向同步串行协议,时钟脉冲信号?以下皆称CLOCK?总是由鼠标产生。因此,可以考虑这种方案:鼠标的CLOCK接主机的一外中断线,数据线?以下皆称DATA?接主机的某一I/O口线,如图4所示。

在主机程序中,利用每个数据位的时钟脉冲触发中断,在中断例程中实现数据位的判断和接收。在实验过程中,通过合适的编程,能够正确控制并接收鼠标数据。但该方案有一点不足,由于每个CLOCK都要产生一次中断,中断频繁,需要耗用大量的主机资源。

由于鼠标与主机之间以双向同步串行协议传送数据,若不考虑CLOCK,仅考虑DATA,则其数据帧的时序与单片机的UART异步串行时序类似。所以,采用了另一种方案:鼠标的CLOCK仍旧接主机的外中断,但鼠标的DATA接UART的接收脚?RxD?。参照图4? DATA改接RxD。在初始化过程中,主机利用CLOCK的外中断和RxD脚的I/O口线功能实现数据的传输。初始化完成后,切换到RxD功能?即UART的接收引脚功能?。因为鼠标已处于Stream模式的工作状态,这时鼠标能主动发送数据。这样,主机可以在每收到一帧数据时才中断一次。中断次数大大降低,减少了主机资源的耗用。

不过,在此方案中,必须实现另一个功能:主机波特率的自适应。因为PS/2接口的鼠标一般工作在10kHz~20kHz时钟频率。不同厂家制造的鼠标工作的时钟频率不同。嵌入设备主机要做到与不同鼠标的波特率同步和自适应,才能够正确接收鼠标传送来的数据。波特率的自适应是这样实现:鼠标上电自检时会产生一串时钟脉冲,利用鼠标时钟脉冲产生的中断,结合主机的`定时器测量时钟脉冲周期,可以得出所用鼠标的时钟频率,进而求出波特率。通过设置相应的波特率寄存器,实现了波特率的自适应。

3.2 软件实现

软件实现原理框图如图5所示。

(1)鼠标初始化

最简单的初始化就是当鼠标上电自检完成后,主机给鼠标发送一个使能鼠标数据传送命令字节(0xf4),鼠标就会在默认设置状态下工作。主机也可实现自定义初始化,如:复位三次(Snd_CMD(0xff),Snd_CMD(0xff),Snd_CMD(0xff);设置采样率:Snd_CMD(0xf3),Snd_CMD(0x0a);设置解析度(2点/毫米):Snd_CMD(0xe8),Snd_CMD(0x01);设置缩放比例(1:1):Snd_CMD(0xe6);使能鼠标数据传送:Snd_CMD(0xf4)。鼠标每收到一个命令字节都会给出一个应答字节(0xfa)。

(2)两种方案的实现过程

两种方案的软件实现过程基本相同。只是后一种方案中,初始化时还要实现主机波特率的自适应,关闭时钟脉冲中断和打开串口中断。此后主机利用UART的接收功能接收鼠标数据。

(3)图形化人机接口(GUI)的实现

在点阵式LCD显示屏上实现图形化的人机接口界面,主要有两个方面:一个是菜单图标的实现;另一个是鼠标光标的实现。实现菜单图标,显示屏一般工作在图形显示模式。菜单图标有正常显示状态和反显状态,它们都用函数实现:void Draw_ICON(signed int xICON, signed int yICON,unsigned char *pDatICON)。xICON?yICON是图标所在位置的左上角坐标值,pDatICON是各个图标及其不同显示状态的点阵码值。反显状态是当图标被光标滑到或点取时才显现的。实现鼠标光标,又分两种情况。一种是单层显示的LCD,只能由程序画出鼠标光标。但是,当光标移动较快时,画出光标的点阵图形需要耗用较多的主机资源。另一种是有双层显示和光标功能的LCD,只需程序控制它的光标移动位置,无需程序画出光标的点阵图形,因而耗用主机资源较少,实现起来效果较好。

两种方案简单、明了,容易实现,都已在实验中得到验证。并且,后一种方案已在某一仪表系统中得到成功应用。总体来说,随着嵌入式处理器性能的不断提高,在嵌入设备中接入鼠标,既可灵活使用,也可减少因接入许多按键而占用的口线数,还能使LCD的图形化显示界面更美观、更人性化。

篇5:一种嵌入式WEB服务器的设计与实现

通常嵌入式系统硬件包括微控制器、存储器及外设器件和I/O端口等,其核心是嵌入式微控制器。为适应上网需求,嵌入式微控制器不仅要具有传统的控制功能,还要具有与因特网连接的功能。而Ubicom公司的SX52芯片能比较容易实现TCP/IP协议,选择它作为微控制器。关于传输媒质,采用最常用的连接模式即通过以太网连接Internet,利用网络接口控制器RTL8019AS实现数据链路层协议。RTL8019AS采用台湾Realtek公司生产的RTL8019AS芯片。

嵌入式WEB服务器硬件结构框图如图1所示。

嵌入式WEB服务器用SX52微控制器作为处理器,以太网驱动芯片RTL8019AS经耦合隔离滤波器HR61101G和RJ45接口接入以太网,配有RS232和CAN总线两个扩展接口,可以将具有RS232接口的设备或采用CAN总线协议通信的设备连到以太网上。RS232接口采用MAX232CPE芯片,CAN总线控制器采用Philips公司的SJAl000芯片,CAN收发器采用Philips公司的PCA82C250。

图1

数据的流向为:请求和控制信息从局域网中来,通过nJ45送到RTL8019AS,RTL8019AS负责将以太网帧的首部和尾部信息剥离,将处理后的数据包送入SX52的TCP/IP协议栈,由协议栈对数据包进行解析,得到原始的请求和控制信息。请求和控制信息再经过SJAl000进行CAN协议格式的数据封装,再与现场的CAN总线设备进行通信。请求和控制的回复信息到局域网的过程正好相反。

在嵌入式WEB服务器的硬件设计中,在确保通信功能顺利实现的同时,充分利用了SX52芯片I/O口灵活配置的特点,最大程度地节约了微控制器SX52的硬件资源。

图2为WEB服务器主要芯片连接电路简图,结合本图详细分析系统硬件设计。

1.1 RTL8019AS驱动程序实现

RTLS019AS是台湾Realtek公司制造的一种高集成度的全双工10Mbps以太网控制芯片,实现了基于Ethernet协议的MAC层的全部功能,内置16KB的SRAM、双DMA通道和FIFO完成数据包的接收和发送功能。在网关设计中,使用跳线模式(JP置为高)来硬配置RTLS019AS为8位模式;使用了RTL8019的低五位地址线A0~A4以及低8位数据线D0~D7。为满足RTL8019AS的ISA时序,RTL8019AS高端地址A5~A19须设置为0X300。SX52的B口的B0~B4脚作为地址线连接RTL8019AS的低5位地址线,B5~B7作为控制线分别连接读写时序控制脚IORB、IOWB、IOCHRDY;C口作为数据线连接RTLS019AS的低8位数据线;A口保留,用作日后扩展。设计中采用AT24C64这样一个8KB的EEPROM来保存WEB服务器的配置信息,如网关IP地址、MAC地址和SJAl000的ID网络标示符、网络掩码AMR和总线定时(BTR0、BTR1)等。这样就能够灵活方便地修改网关参数,适应不同环境,同时也考虑到以后的扩展。

图2

要实现嵌入式WEB服务器接入以太网,就要对RTL8019AS进行编程,完成以太网帧的数据收发,相当于实现PC机中网卡的驱动程序功能。首先要对RTL8019AS进行复位,并将其设置为跳线模式;然后对RTL8019AS的工作参数进行设置,以使其开始工作;接下来读写RTL8019AS的RAM以完成数据包的接收和发送。程序流程如图3所示。

1.2 TCP/IP协议栈的实现

并不是所有的协议在嵌入式WEB服务器中都要实现,应根据项目要求有选择地加以实现。以太网数据的传输采用MAC地址来识别,而ARP协议提供IP地址和数据链路层使用的MAC地址之间的转换功能,为了保证系统在以太网的通信,首先要实现ARP协议;由于嵌入式WEB服务器要能在Internet上通信,在网络层一定要实现IP协议,还要实现能报告数据传送差错等情况的ICMP协议;在应用层,主要实现远端主机通过浏览器的访问控制方式,所以要实现HTTP协议。而HTTP协议是基于TCP协议实现传输的,加上TCP协议是面向可靠的数据流的传输,基于应用的需要和对可靠性的要求,在传输层采用TCP协议,并对TCP协议进行简化处理,主要针对HTTP协议开发TCP协议。

&nb

sp; 由于嵌入式系统的资源有限,因此将TCP/IP协议最大幅度精简,以提高程序的运行速度,减少在SX52存储器中占用的空间。TCP/IP协议栈主流程图如图4所示。

(本网网收集整理)

精简协议主要遵循以下两个原则:

(1)协议内容精简

嵌入式WEB服务器的实现需要ARP、IP、TCP、ICMP等网络协议的支持,每一个完整协议都很庞大,在存储容量并不大的SX52上全部实现是不现实的`。应该在保证实现网络通信基本功能的前提下尽可能地精简协议,确定出协议的哪一部分是必需的,哪一部分可以省略,以满足系统要求。

(2)协议接口层次明确

TCP/IP协议分布在链路层、网络层、传输层和应用层上,是分层实现的,每一层只负责处理通信过程中的一部分问题,其它层不能实现其功能。采用模块化的设计思路,如果需要修改哪个协议,只需修改相应模块的功能,其它模块不用改动。协议分层简化了程序的设计和调试,每层的协议相互独立,使协议的开发更高效。在网络系统中,按照分层的思想,从网络最底层开始每一层都为高层提供服务,明确层间接口对软件开发十分重要。

篇6:一种嵌入式WEB服务器的设计与实现

Brower/Server(简称B/S)模式已经成为流行的开发模式,课题中的嵌入式WEB服务器要实现的功能主要是现场实时数据发布功能。B/S访问模式是WEBServer和Browser之间的直接访问。客户和服务器间的中间节点不对HTTP请求及响应做任何操作,只需在客户端采用如IE这样的浏览器对服务器上的数据进行浏览,不用开发客户端程序。采用B/S结构具有如下优势:

・具有分布性特点,可以随时随地进行业务处理;

・系统维护或升级只在服务器端,对客户端无须进行改动,只需要改变服务器端网页,即可实现所有用户的同步更新,易于维护和升级;

・开发简单,共享性强。

图4

B/S访问模式只需对服务器端程序进行开发。在服务器端形成动态网页最常用的工具有ASP和JSP。由于采用的嵌入式芯片SX52只有4KB存储容量,在SX52中既实现TCP/IP协议栈,又实现ASP和JSP的功能是很困难的。所以可以采用字节传输方式针对SX52用汇编语言编程实现动态网页。

Java applet能够被传送到浏览器并且在浏览器所在的本地机上运行。本设计正是利用了这一特性改进了传统的B/S模式设计出的应用程序,Java applet对于管理和处理动态数据也是一种行之有效的技术。Java applet能实时表示从轮询得到的更新信息,利用这个特性显示实时数据。所以程序客户端采用Java applet设计实现。

嵌入式WEB服务器接入以太网时,在程序中设置了自身的IP地址和MAC地址,可以与局域网上任一台微机通信。服务器端主要实现两部分功能:利用HTTP协议实现网页浏览功能和利用套接字编程实现与客户端applet通信的功能。服务器程序用SX52的汇编语言实现。

在WEB服务器中实现HTTP协议才能实现网页文件的浏览。方案中将WEB服务器上扩展的EEPROM与SX52相连,用来存储要浏览的WEB文件,EEPROM里的WEB内容采用原始数据的形式存储,没有进行封装和编码。文本内容以ASCⅡ码形式存储,图像内容以二进制数据形式存储。

篇7:一种嵌入式WEB服务器的设计与实现

摘要:介绍了一种嵌入式WEB服务器的设计与实现,实现了以太网与CAN总线网络的直接互连,使用户可以使用PC机通过Internet进行远程访问和控制Web服务器,从而能够将工业现场测控层监测设备得到的数据方便快捷地送到异地的管理监控层。

关键词:WEB服务器 以太网 CAN总线

在企业自动化的工业现场,下层车间的监测设备之间都是采用现场总线相互连接,而企业的管理层和生产监控层都是连于以太网的`PC,甚至是位于异地的连于互连网上的PC。为了使工业现场的现场总线上的设备和管理监控层之间的PC能够通信,同时改善故障检测和设备维护的远程访问能力,笔者在CAN总线网与以太网的互连系统中设计了一个嵌入式WEB服务器。

相关专题 蓝牙嵌入式