USB2.0开发系统管理论文

2022-04-30

摘要:数字视频已经成为嵌入式领域的一个重要发展方向。达芬奇的集成DSP高速处理功能的通用处理器的功能,二者的有效结合,是音频和视频处理,非常适合高性能,实时性。在视频监控领域的同时,目标识别与跟踪等,如何实时嵌入式终端发送数据到远程计算机的处理也是一个迫切需要解决的问题。今天小编为大家精心挑选了关于《USB2.0开发系统管理论文(精选3篇)》仅供参考,希望能够帮助到大家。

USB2.0开发系统管理论文 篇1:

SMS消息推送服务平台的研究与实现

摘 要:在信息高速化的今天,大多数企业只提供了在线模式下的数据服务,而忽视了没有网络情况下对数据的及时更新和推送。该系统在离线模式下,服务器端通过USB2.0总线从主控手机获取企业用户以短消息发来的待查询内容,然后对服务器端的数据进行查询,再通过USB总线把查询结果推送到主控手机,并控制手机把查询结果以短消息的方式推送给企业查询方。该系统的设计打破了对网络模式依赖的局限性,为用户提供了随时随地享受企业的数据服务。

关键词:离线模式;USB2.0;消息推送

近年来,很多企业都为用户提供查询等数据服务,但是这种服务基本上是以在线方式[1]进行,通常是通过浏览器来获取。考虑到用户可能受环境所限,例如在差旅、休假期间,当采用传统的邮件方式向用户发送参会邀请、即时通知等信息时,便会存在接受不及时、查阅不方便等问题,不能做到随时随地、方便快捷的获取信息;电话通知方式也同样存在接听不方便、便捷性不佳等问题;一些大型数据信息系统仅提供在线联网查询方式,对网络环境依赖较大且查询方式过于单一。在这种情况下,用户往往会因为一些客观因素不能及时查看重要信息,而给造成不可挽回的损失和影响。

本文实现了一个基于USB的离线消息推送系统。USB总线是一种低成本的、本地的高效通信技术[2],本系统通过对USB通信方式[3]的深入研究,以手机等移动终端为基础,利用Android手机与服务器电脑通过USB通信的方式进行连接,并相互发送消息,在此基础上实现对数据资源的离线查询,实现数据资源与行业资讯等预约内容在客户端的主动呈现[4],丰富和完善大型企业的信息发布机制。

1 系统的设计与实现

1.1 设计思想

系统由主控手机Android平台、服务器端Windows平台和USB2.0数据线组成。Windows主机完成對数据的查询,并把查询结果通过数据线传输到主控手机端并控制主控手机发送短信到企业客户,主控手机负责短消息的接收和发送;系统还具备短消息群发的功能,例如通知会议事项、节假日祝福短信等;企业的服务器管理员可以通过该系统远程控制服务器的关机、重启和查询日志等功能,服务器管理员只需把操作服务器的指令以短消息的形式发送到主控手机,就可以实现主控手机对服务器进行相应的操作,该功能可以让管理员随时随地实现对机房服务器的控制。

1.2 系统总体设计

该系统的总体设计具体如下。浏览器提供系统与用户交互的界面与接入口,管理员可以实现对用户的权限管理、消息的群发以及查看日志消息等操作;该系统的功能模块主要包含手机-服务器模块、用户管理模块、远程控制模块、短消息群发模块、消息接收模块、查询数据库模块以及消息主动推送模块;系统开发采用J2EE平台,并使用目前技术成熟的SSH框架(包括struts、spring和hibernate三个轻量级的成熟框架)[5],该框架主要实现了表示层、业务逻辑层和数据持久层;系统数据库采用企业级的oracle数据库,便于和企业成熟系统的数据库进行连接,更好地实现数据的主动推送;系统还需要与企业其他系统进行有效集成,监测其公告更新、资讯发布情况等。

1.3 短消息的收发原理

本系统短消息的收发主要依靠主控手机实现,需要为手机提供SIM卡,并通过USB数据线与服务器端电脑进行相连,利用安装在主控手机上的本系统客户端实现收发功能。

完成短消息的收发需要实现移动通信网络连接的两个接口[6],包括请求短消息处理和响应短消息处理两个模块。

android API中提供了smsManager类来处理短消息的发送和接收[7]。

系统开发中接收短消息用到的SMS层封装的主要函数有:

(1)getDefault(),用来获取SmsManager的默认实例,是Android系统默认的短信管理器,可以通过它发送短信。

(2)sendTextMessage(),实现对短消息(小于70个字符)的发送。

(3)divideMessage(),实现对长消息的自动拆分成多条的短消息[8]。

(4)sendMultipartTextMessage()以分条的形式把长消息发送到接收方,并在接收方把消息整合为一条显示。

短信发送后会有两个结果状态:短消息发送是否成功和对方接收是否成功。系统的发送消息功能其实是通过把消息发送到消息服务中心,然后由消息中心把信息转发到接收方实现的。系统只是实现了把消息发送到消息中心,并不是消息是否发送成功的决定因素。在系统开发中需要充分考虑到消息中心网络的状态、短消息队列的容量以及短消息的发送速度。

(1)和(3)两个函数的主要参数:ssentIntent为短信发送是否成功的Intent;deliveryIntent为接收方是否收到了短信的Intent信号的。

接收是利用继承BroadcaseReceiver类覆盖onReceive函数来监听是否收到了短消息。onReceive函数首先需要判断监听到的消息是否为android.provider.Telephony. SMS_RECEIVED,若为真,则需要判断是否有数据接收,若有数据需要进一步根据数据对象,获得短消息的发送方的电话号码以及发送的短消息的内容。最后把接收消息的时间、发送方的电话号码和短消息的内容返回即可。

1.4 系统模块结构设计与实现

该短消息推送服务平台实现了一个基于USB通信的消息推送系统,系统模块包括系统管理模块、USB消息和SMS消息模块。

系统管理模块主要为管理员提供了群发消息的功能,可以为企业内部员工发送会议通知,为企业客户发送祝福短信;管理员还可以查看手机收发消息日志,包括收发方的手机号、收发消息的时间和内容等。该模块分为服务器端和管理员端,管理员群发短消息,首先需要上传excel通讯录,然后输入短消息的内容。系统实现该功能的方式为:把通讯录上传到指定目录,并把短消息内容以txt格式存储到相同目录下;服务器端监听该目录下文件的变化,如果上传了新的通讯录和文本文件,就会向手机端发送群发消息的指令。系统上传和下载采用jspSmartUpload.jar组件实现。

USB消息模块分为服务器端、手机客户端,主要实现消息的USB传输功能。本文通信采用“长连接”的方式,即在传输中只进行一次连接;由于socket传输有大小限制,传输采用“轮循”的读写方式,即把联系人分批发送到手机端。

采用这种方式,便于主控手机端把监听到的接收短信、发送短信的动作以及消息内容即时传输到服务器端。采用socket编程实现,服务器端和Android手机端功能具体实现方式分别如下:

SMS消息模块主要提供接收消息的监听(信息来源包括企业用户和服务器管理员)和短消息的发送功能。onReceive(Context context,Intent intent)用来判断接收到的广播是否为收到短信的Broadcast Action,若收到短信则监听函数就会返回recmessage,它被赋值为:发送方+接受时间+接收内容。把消息recmessage通过USB数据线传输给服务器端,服务器端需要判断发送方为企业客户或服务器管理员,并进行权限判断。若为企业客户,并拥有查询权限,那么需要根据查询内容到数据库查询结果,并把结果传输给Android手机端发送给企业客户;若为服务器管理员,则需要根据短信内容执行对服务器的重启等功能,并把服务器状态结果发送给服务器管理员。

2 系统性能测试

当大批量的发送短消息时,在未设置时间间隔的情况下,误码率比较高。一方面是瞬间的大量的操作加重了服务器的负荷,造成部分短消息提交不成功另一方面是频繁提交发送请求,造成消息中心的消息队列拥堵,也会使部分消息丢失。

在测试中,如果设置每条消息发送的时间间隔为5s以上,可以保证100%的成功率;3s~5s成功率为99.9%;1s~2s成功率为98%;若低于1s成功率就相当的低了。

在整个测试过程中,小于70字的消息发送的成功率高于长消息的成功率;在同一网络下发送的成功率高于跨网的成功率。

3 结束语

该短消息推送数据服务平台基于现有移动运营商的SMS消息技术和Android开发接口实现了在离线模式下通过短消息为企业用户推送新的资讯和通知;为机房管理员提供远程管理服务器的功能,便于随时查询并解决服务器故障;为企业员工提供短信群发功能,极大的提高了工作效率。并在深入研究SMS机制和Android内核的基础上,完成了对短消息的分页整合、对服务器与Android平台通信的优化等,开发出一套适合运营企业的离线数据推送服务。

参考文献:

[1]南卓铜,李新,王亮绪.中国西部环境与生态科学数据中心在线共享平台的设计与实现[J].冰川冻土,2010(32):970-974.

[2]莫宏伟,柳泉,赵文华.USB传输技术及其应用[J].应用科技,2001(28):20-22.

[3]陈德竑,张浩,随剑峰.Windows平台下USB通信原理及编程实现[J].中国民航学院学报,2003(21):49-52.

[4]何少岳,徐晓东,马祖苑.主动推送技术在移动协同教育中的应用[J].现代教育技术,2012(22):100-103.

[5]唐倩,张伟.轻量级J2EE中SSH框架的研究及其应用[J].物联网技术,2013(12):52-55.

[6]胡毅.基于SMS的商业短消息互动系统的设计[J].计算机光盘软件与应用,2013(12):55-56.

[7]张雷,彭健.基于ANDROID的SMS加密设计与实现[J].电脑知识与技术,2013(09):1524-1531.

[8]陈思中,李青.国际漫游短消息拆分的分析与研究[J].电信技术,2013(09):60-62.

作者简介:程旭,男,数据资源中心,软件工程师,硕士研究生,研究方向:软件工程,信息检索等。

作者單位:中国汽车技术研究中心,天津 300300

项目名称:基于GSM-SMS的数据主动推送与远程控制系统的研究与开发(项目编号:14140131)。

作者:程旭 张亚楠

USB2.0开发系统管理论文 篇2:

基于linux的网络终端的设计与实现

摘 要:数字视频已经成为嵌入式领域的一个重要发展方向。达芬奇的集成DSP高速处理功能的通用处理器的功能,二者的有效结合,是音频和视频处理,非常适合高性能,实时性。在视频监控领域的同时,目标识别与跟踪等,如何实时嵌入式终端发送数据到远程计算机的处理也是一个迫切需要解决的问题。

关键词:DM3730;嵌入式linux系统;平台;移植

1. 引言

随着嵌入式多媒体系统功能复杂程度的不断提高,目前 720P、DM3730 等高清视频采集与处理大部分由 Linux系统来实现,由于Linux系统处理速度快,内存大,可以完成视频采集、处理与传输等功能,但是Linux系统也存在很多缺点,如功耗比较高且体积大,在应用方面受到限制。另一方面,面对多变的客户需求和复杂的市场环境, 本次论文选用嵌入式 Linux 软件开发平台搭建对嵌入式多媒体系统的功能进行扩展,对智能手机、智能视频监控、数字机顶盒、移动智能视频录像机等,使得发嵌入式多媒体产品具有现实意义。

2. 嵌入式 Linux 软件开发平台搭建

系统软件开发平台搭建主要分为交叉编译环境建立、嵌入式 Linux 系统内核裁剪与移植、系统引导程序编译与移植、根文件系统制作以及 NFS、Samba 服务器安装与配置。本章将分别对以上内容进行介绍。

2.1 交叉编译环境搭建

建立交叉编译环境是嵌入式 Linux 开发的前提,这是由于嵌入式系统资源有限,程序设计无法直接在嵌入式 Linux 环境下编译,必须将程序在通用计算机上编译生成二进制可执行文件,下载到嵌入式系统中才可以执行。前者通用计算机一般称为宿主机,后者一般称为目标机。编译好的二进制可执行文件一般通过两者之间的连接端口及连接工具如串口、网口、USB 接口及 JTAG 口等进行下载调试。如图 2-1 所示为系统交叉编译环境搭建连接图。

图 2-1 交叉编译环境连接图

由上图可知,搭建系统软件编译环境由宿主机和目标板以及几种通信接口组成,各个模块介绍如下:

(1) 宿主机开发系统是在 WIN7 主机下的 VMware 虚拟机中安装 Linux 操作系统,该操作系统选用的是 Ubuntu10.04LTS 版本操作系统。该系统是长期支持版本,性能稳定,适合 dm3730 开发。

(2) 目标板选用的是天漠公司 Devkit8500 系列评估板,系统软件首先在评估板上开发,待硬件制作好以后,将软件系统移植过去。

(3) 由于宿主机是 x86 体统结构而目标板为 ARM 体系结构,在宿主机下编译的程序无法直接在目标板中运行,必须是有交叉编译工具来编译程序,本系统使用的是arm-eabi-gcc 交叉编译工具。

(4) 串口和网络调试工具使用的是 SecureCRT 调试工具,该调试工具不仅可以作为串口工具使用,设置波特率、数据位、停止位、奇偶校验等,还可以作为网络调试工具,利用 telnet 功能,实现网络调试。

2.2 NFS 服务配置

本系统中将建立 NFS 共享文件夹,在串口或网络调试工具中输入挂载命令“mount -t nfs -o nolock 192.168.0.150:/home/nfs /mnt/nfs”挂载到目标板“/mnt/nfs”目录下,那么在目标板中就可以直接调试宿主机中编译好的程序。这种调试方式可以方便系统开发,加快开发进度。NFS 服务器配置方式如下:

(1) Ubuntu 系统中安装软件相对比较简单,只需要在终端中输入命令“sudo apt-getinstall nfs-kernel-server”,系统自动下载安装。

(2) 安装结束后需要配置“/etc/exports”文件,该文件为 NFS 共享目录配置文件,输 入 命 令 “sudo vim /etc/exports” , 在 打 开 的 文 件 最 后 输 入 “/home/nfs*( rw,sync,no_root_squash )”。/home/nfs 是要共享的目录,rw 和 sync 等命令代表对该目录的读写权限,写入方式等配置,以及操作权限设定。

(3) 配置好以后通过下面的命令重启服务。

$sudo /etc/init.d/portmap restart

$sudo /etc/init.d/nfs-kernel-server restart

(4) 目标板上测试 NFS,在调试窗口输入下面命令,查看该文件夹下是否是宿主机目录下的内容,如果有则表示配置成功。

$mount -t nfs -o nolock 192.168.0.150:/home/nfs /mnt/nfs

$ cd /mnt/nfs

$ ls

2.3 Samba 服务配置

Samba 是 Linux 操作系统与 Windows 操作系统之间架起的一座桥梁,两者之间基于 SMB(Server Message Block)协议,需要在 Linux 建立一个共享文件夹。本文系统中在宿主机“/home/share”目录下建立共享文件夹。Samba 服务器的建立同 NFS 相似,具体为如下步骤:

(1) 在 Ubuntu 系统终端中输入命令“sudo apt-get install samba”和“sudo apt-getinstall smbfs”系统自动下载安装。

(2) 创建共享文件夹

$mkdir /home/share

$chmod 777 /home/share

(3) 编辑 Samba 服务配置文件,需要打开“/etc/samba/smb.conf”文件,在末尾添加

如下信息:

path = /home/ /share

public = yes

writable = yes

valid users = suda

create mask = 0700

directory mask = 0700

force user = nobody

force group = nogroup

available = yes

browseable = yes

(4) 重启 Samba 服务

$ sudo /etc/init.d/samba restart

(5) Samba 测试

在 Windows 系统下,打开命令窗口,输入“//192.168.0.150”,其中 IP 地址为 Ubuntu系统中的 IP 地址,如果输入命令按回车后,显示 share 共享文件夹,则表明 Samba服务器配置成功。

3. 嵌入式 Linux 内核裁剪与移植

系统内核是一个操作系统的灵魂,负责系统的进程调度、内存管理、文件系统及网络系统管理等,可以满足嵌入式系统中绝大多数的复杂性要求,但是由于一般嵌入式 Linux 内核大小有 30M 到 80M 等,而嵌入式系统硬件资源有限,就必须对内核进行重新裁剪和配置。内核的裁剪与配置主要针对系统硬件资源和软件设计需求,将内核中不需要的内容删除及重新配置,最后重新编译内核,生成镜像文件,下载到目标板中。

3.1 内核的配置

在系统内核编译前需要对系统的内核进行配置,配置时需要根据系统实际需求,认真配置每一项,如果配置不当,直接关系到系统能否正常启动,是否满足系统设计需求等。配置内核除选择必须参数外,还需要将不需要的选项去除,比如视频驱动可能支持很多种设备的驱动,就需要将不需要的驱动去除,以此减少内核空间,但是如果内核里面没有该支持的驱动,就需要添加。如本文选择的 Linux 操作系统中没有对 MT9P031 图像传感器的驱动支持,就需要内核配置中对其添加。需要在“defconfig”,“kconfig”和“makefile”等三个文件中添加配置数据。在内核中三个文件的存储路径分别为 “/arch/arm/configs/omap3_beagle_defconfig”,“drivers/media/video/Kconfig”和“drivers/media/video/Makefile”。

在 omap3_beagle_defconfig 配置文件中添加如下配置信息:

CONFIG_SOC_CAMERA=y

CONFIG_SOC_CAMERA_MT9P031=y

在/video/Kconfig 视频驱动配置文件中添加如下配置信息:

config SOC_CAMERA_MT9P031

tristate "mt9p031 support"

depends on SOC_CAMERA && I2C

help

This driver supports MT9P031 cameras from Micron.在 video/Makefile 编译文件中添加修改如下编译文件信息:obj-$(CONFIG_SOC_CAMERA_MT9P031) += mt9p031.o修改好后,需要对系统内核重新编译。编译通过后,需要配置内核,选择刚才添加的驱动文件,通常配置内核都是通过 make menuconfig 命令来进行图形化配置。如图 3-2所示,在菜单中选择所需要的功能。

图 3-2 内核配置图像界面按“Y”键选中功能,并将该驱动功能编译到内核中,系统启动后将添加该功能;“N”取消该功能,系统编译时内核将不添加该功能;“M”功能为模块化编译功能,系统编译后内核不添加该功能,而是生成*.ko 文件的动态链接库,当系统启动后如果需要使用该功能, 就使用 insmod 命令添加该动态库,这种方式可以减少系统内核空间。配置完成后系统会自动生成 config 配置文件。MT9P031 配置界面如图 3-2 所示,为了使初期调试方便,本系统中对 MT9P031 选择的 M 模式,这样每次修改驱动文件后,就不需要重新编译内核,但在后期成品时需要将该驱动编译到系统内核。

3.2 内核的编译与移植

内核配置完成以后,就需要对系统内核进行编译,在编译前可以通过命令“export$PATH”来查看交叉编译工具 arm-none-linux-gcc4.4.3 是否添加,如果没有,则需要见该工具添加,使用的命令为“export PATH=$PATH:/opt/arm-q2003/ arm-eabi-4.4.0”。确认好编译环境后,开始对内核编译。首先使用命令“make distclean”,清除以前编译遗留下的文件,然后输入命令“make”进行编译,编译好后将在“arch/arm/boot”目录下生成 uImage 镜像文件。本系统是将该镜像文件拷贝到 TF 卡上,通过 TF 卡实现系统更新。

4. 基于DM3730 的嵌入式传输系统的实现

4.1系统平台架构

本嵌入式系统采用的核心处理器为 DM3730,它由1GHz的ARM Cortex-A8 Core和 800MHz的TMS320C64x+ DSP Core两部分组成,集成了 3D 图像处理器、视频加速器、USB2.0、支持 MMC/SD 卡、串口等模块,并支持高清 720p 视频编解码。DM3730 处理器内部的 ARM 核与 DSP 核共用一个GPMC(General-Purpose Memory Controller,通用存储控制器)。GPMC 是一个 16 位的外部存储控制器,它的数据访问引擎提供了一套灵活的编程模式来与外部的标准存储设备通信,W5300 即挂接在 GPMC 接口上。DM3730 处理器的中断系统由 MPU 中断子系统、IVA2.2 断子系统中及Modem 中断子系统三部分组成,不同的中断子系统分别来响应不同的中断。W5300 的中断引脚连接在 GPIO 上,通过将 GPIO 配置成中断引脚,由 MPU 中断子系统对其进行响应。DM3730处理器可以实现视频数据的实时编解码,而W5300 以太网处理器芯片可以实现高速的组网传输,这样的组合可以较好的克服视频处理和视频流传输两方面均可能出现的瓶颈问题。

4.2系统性能测试

4.2.1 测试环境的搭建

嵌入式系统与 PC 机通过路由器连接,采用路由器动态分配的网络地址方法。在该测试中,嵌入式系统的网络地址为 192.168.0.105,PC 端的网络地址为 192.168.0.101。

4.2.2 链路连通性的测试

在 PC 端使用 Ping 命令测试网络的联通性,结果,如图3所示:图3 Ping命令测试结果

该实验结果表明 W5300 的驱动程序工作正常,网络状态良好,没有发生丢包现象。

4.2.3 视频流业务传输的性能测试

在该测试中使用 FTP 协议进行视频文件的传输,PC 端作为服务器端,嵌入式系统作为客户端,嵌入式系统通过FTP 协议从服务器 PC 端下载上传视频文件。在此测试过程中,服务器端采用了 FileZilla Server,它是一款超强的开源免费 FTP 服务器软件,同时客户端采用 FileZilla Client,将其编译移植到嵌入式系统上,通过文件传输来测试数据传输速率。多次测试的数据传输速率,如表 1 所示:

表 1 数据传输速率测试结果

通过计算,采用软件协议栈时,数据传输速率为1348.3Kbps,采用硬件协议栈时,数据传输速率为2651.7Kbps,说明在使用软硬件协议栈的情况下,W5300以太网处理芯片均可正常工作,且采用硬件协议栈时的数据传输速率是软件协议时的 2 倍,可以满足大批量视频流业务的传输。

总结

本文基于 DM3730 处理器的嵌入式 Linux 系统平台,通过 FTP 服务器对系统的性能进行了测试,测试结果表明该方案的传输速率能够稳定保持在 2.65Mbps,能够满足 VGA 格式视频流业务实时传输的要求。通过嵌入式 Linux 软件开发平台搭建,以及嵌入式 Linux 内核裁剪与移植,内核的配置,内核的编译与移植实现了DM3730 处理器的嵌入式 Linux 系统架构,最后系统平台架构,系统性能测试来实现DM3730 的嵌入式传输系统。■

参考文献

[1] 赵瑶池,胡祝华,胡诗雨. 嵌入式网络智能视频监控系统设计与实现[J]. 现代电子技术,2012,35(4):68-70.

[2] 李硕豪,张军. 基于 OMAP3530 数字图像处理的多人脸识别系统设计[J]. 微型机与应用,2013,32(11):61-63.

[3] 屈桥,李波,陈玉坤. 基于嵌入式 Linux 的以太网视频高速传输研究[J]. 测控技术,2012,31(5):110-112.

[4] 吴昊,严胜刚,薛双喜. 基于 W5300 的以太网数据传输系统的设计与实现[J]. 电子设计工程,2012,(09):92-94.

[5] 周建平,刘歆浏. 基于 DM3730 平台的智能数字视频监控系统[J]. 兵工自动化,2012,31(5):59-60.

[6] Texas Instruments.AM/DM37x Multimedia Device Sili-con Revision 1.x[S].2010.

[7] 潘必超. 基于 OMAP3530 GPMC 控制器的网络接口拓展[J].微计算机信息,2010,26(11-2):83-85.

[8] WIZnet.High-performance Internet Connectivity SolutionW5300[Z].2008.

[9] 龙新辉,陈俊杰. 基于嵌入式 Linux 的以太网卡驱动设计与实现[J]. 舰船电子工程,2011, (3):143-146.

[10] 宋宝华. Linux 设备驱动开发详解[M]. 北京:人民邮电出版社,2008.

作者:徐厚竹 唐丽晴

USB2.0开发系统管理论文 篇3:

基于AMCC460GT和VxWorks的千兆网络通信系统设计

为了适应高速总线通信的快速发展,满足千兆网络的通信技术要求,介绍了在原百兆网络终端通信板的基础上,开发基于VxWorks操作系统和AMCC460GT处理器的千兆网络通信终端板,使其数据处理能力和性能满足规范需求,并为基于VxWorks与AMMCC460GT通信系统架构的设计应用开辟了成功先例。

以AMCC公司的460GT通信处理器为核心,设计了一款网络通信系统平台。这个通信系统主要由增强型Power PC440处理内核(32-KB的指令和数据缓存)、256-KB的L2cache、64-KB的片上内存,DDR存储控制器(支持DDR1/DDR2)、PLB总线控制器、可编程中断控制器、PCI控制器、PCIE控制器、DMA控制器、10/100/1000以太网控制单元、安全引擎等众多模块整合而成。可以提供一路PCI总线、两路PCIE总线、一路USB、2个简单串口和4个10/100/1000自适应以太网接口等,工作频率最高可达1GHz,支持最大4G的DDR SDRAM内存,内部集成加密的模块。此外还提供一套扩展接口,包括通用的CPU控制总线(EBC总线时序可编程),可以灵活地挂接各种CPU方式读写的设备,实现控制功能;同时,在基于通信处理器的嵌入式微处理器的应用开发中,嵌入式实时操作系统是构成整个嵌入式通信系统不可或缺的核心软件。设计采用美国WindRiver公司的VxWorks6.7版本嵌入式实时操作系统,研究以太网络设备TCP/IP协议和各种硬件通信接口驱动在VxWorks下如何移植与实现。

AMCC460GT通信处理器

AMCC460GT硬件特性

AMCC460GT是基于440Core片上系统的PowerPC内核,拥有32 KB的指令和数据缓存,片上系统还包括DDR SDRAM存储控制器,4个三速率的以太网控制器。AMCC460GT的高度集成极大的简化了板级设计,图1显示的就是AMCC460GT單板功能框架图,在单板上集成了千兆以太网、和PCI、PCIe通用插槽,可以作为千兆网络系统使用。以下是系统板功能框图:

AMCC460GT复位设计

AMCC460GT提供四类复位信号SysReset、HISRRst、PCIORest、ExtReset,其中HISRRst为输入信号,PCIORest、ExtReset为输出信号。这4种信号全部为低电平有效。上电复位过程如图2所示。

AMCC460GT时钟配置

采用66.6667MHz时钟作为CPU的主时钟,用一个Cypress CY22381FX可编程的始终发生器产生如下3种时钟:11.0592 MHz时钟供给Uart串口、48 MHz时钟供给USB2.0,33或66 MHz时钟供给PCI,特别注意的是时钟发生器需要用一个22.1184MHz晶体作为时钟输入,才能输出较稳定的时钟信号。125 MHz时钟供给网口,460GT需要一个125M的参考时钟用于GMAC的发送端,这个时钟采用兼容设计,可以应用1121的125M锁相输出或者用独立晶振。25 MHz时钟供给Phy千兆以太网PHY88E1121R芯片。

芯片的Boot启动过程

CPU在boot启动时,通过外部引脚的配置,来获得初始化参数,并在SysReset引脚信号由低电平恢复到高电平的时钟上升沿,读取参数配置,具体配置如下:

启动模式为Bootstrap Option B,CPU工作状态为CPU:800 MHz,DDR:400 MHz,PLB:200 MHz,OPB:100 MHz,EBC:100 MHz。所以,在系统板在上电之前一定要将UART0的(CTS:DCD:DSR)设计成0:0:1。否则系统工作不正常。

千兆以太网接口电路设计

AMCC460GT内部集成了2个处理模块:一个高性能嵌入式PowerPC 440内核和一个通信处理模块(MAL)。芯片内部拥有4个三速以太网控制器(Three.Speed Ethemet Con-troller,TSEC),实现了10 Mb/s、100 Mb/s和1 Gb/s三种不同速度的以太网协议接口控制。以下为千兆网硬件设计说明

AMCC460GT与PHY芯片的接口设计

AMCC460GT拥有4个TSEC以太网控制器,对4种不同的接口标准都提供了支持,它是完全符合8023协议规格的2.5V器件。在460GT与88E1121的连接中,GMII接口的发送接收参考时钟GTX CLK、RX CLK都是125 MHz,收发数据位宽度TXD[0:7]、RXD[0:7]为8bitS,还有收发使能信号TX EN、RX RV和收发错误指示TX ER、RX ER等。此外还有2个串行管理信号GMCMDC、GMCMDIO与PHY芯片连接。管理配置接口控制PHY的特性。该接口有32个寄存器地址,每个地址16位。

对TSEC控制器的初始化

460GT对TSEC控制器的初始化过程如下。只要按照顺序逐一完成相应的步骤,即可正确配置网络接口。选择TSECx控制器为GMII模式;设置MACCFG1寄存器,对MAC进行软复位;清除MACCFGl寄存器的软复位;设置MACCFG2寄存器,选择TSEC工作模式(如全双工或半双工、CRC校验是否使能等);设置MAC地址、物理地址;设置MII口的速率,使用MDIO对PHY进行初始化;清除并设置中断相关的寄存器I.EVENT和IMASK;设置Hash表和Hash寄存器:初始化接收控制寄存器RCTRL;设置DMA控制寄存器DMATRL:设置接收缓冲区大小;设置收发缓冲描述符(Buffer Descriptor,BD):设置MACCFG1中的收发使能位,完成TSEC初始化。在初始化TSEC的过程中尤其要注意在设置寄存器后,控制器处于不稳定状态,不能马上执行下一步的操作,需要作一定的延迟等待。因此,需要对嵌入式小系统板上的BCSR寄存器进行配置,使得网络通信处于正常状态。也可以使用某些操作系统提供的定时延迟来完成,如VxWorks中的taskDelay()。

对PHY芯片的设计与配置

为了使芯片工作在相应的物理地址、操作模式下,需要对88E1121芯片设备配置寄存器做出相应的配置,配置寄存器的各个位与芯片的配置管脚信号的对应关系如图4所示:

PHY芯片中的部分配置管脚必须与LED输出管脚相连,对应于各个LED输出管脚都有相对应的编码值,根据配置管脚对应配置寄存器的配置值要求,可以通过将相应的输出管脚与芯片配置管脚相连,实现对PHY芯片配置寄存器的合理配置,具体配置如图5所示。

Vxworks操作系统BSP的实现

在一般系统下使用Linux操作系统即可完成相关的任务功能,但针对任务实时性要求比较高的应用场景,采用了Vxworks操作系统来完成,本设计完成了Vxwork6.7版本在硬件平台的移植,其中关键的是操作系统底层BSP设计,所谓BSP通常是指针对具体的硬件平台,用户所编写的启动代码和部分设备驱动程序的集合,也就是依赖于硬件的那部分代码的总和。他所实现的功能包括初始化、驱动部分设备。本系统研究的BSP包含了处理器复位、初始化、串口驱动程序、网口驱动程序、Flash芯片驱动程序和PCI接口驱动程序以及必要的时钟处理。

在VxWorks系统中,对BSP的简单描述为介于底层硬件环境和VxWorks之间的一个软件接口,图6所示的BSP在系统中的层次清楚地展示了BSP与上层操作系统、应用程序以及底层硬件之间的具体关系。它的主要功能是系统加电后初始化目标机硬件、初始化操作系统以及提供部分硬件的驱动程序,具体功能包括:

Vxworks初始化流程:

所谓初始化是指从系统上电复位开始直到VxWorks开始初始化用户应用时的一段时间内系统所执行的过程。这个过程主要包括3个部分的工作。

CPU初始化:初始化CPU的内部寄存器,如状态寄存器、控制寄存器、高速缓存等。

目标机初始化:初始化控制芯片的寄存器、I/O设备寄存器,为整个软件系统提供底层硬件环境的支持。

系统资源初始化:位操作系统及系统的正常运行做准备,进行资源初始化,如操作系统初始化,存储空间分配等。

VxWorks能够访问的硬件驱动程序:BSP包括部分必要的设备驱动程序和相关设备的初始化操作。

BSP启动流程

经过修改后的BSP来编译启动引导程序bootrom和操作系统VxWorks,在获得bootrom映像后用编程器将映像烧入电路板的ROM,上电后将引导系统启动,过程如下:

①目标板加点之后,程序指针指向reset中断程序入口处,跳到rom入口地址,执行初始化程序romInit.s,设置机器状态字及其他硬件相关寄存器、然后禁止中断,初始化内存,并设置堆栈指针。

②跳到C程序bootInit.C的函数romStart0入口地址,根据堆栈中的参数决定是否清零内存RAM。根据不同的bootrom文件,把ROM中数据段和文本段拷贝到RAM(如果是压缩的,还要解压)。

③程序跳到RAM入口地址(文件bootConfig.c中函数usrlnitO),使cache无效,并清零bss段,初始化异常处理程序,进行板级硬件初始化sysHwlnit0。

④启动多任务内核kemellnitO。

⑤初始化串口,创建console终端设备,最后根据单板设计选择不同方式加载操作系统映像文件,如网口、Flash、PCI等。

实验结果

由于设备对功耗的要求,本系统针对不同状态下的情景进行了详细的功耗测试,以及针对千兆网络传输速度进行了极限测试,各项功能均达到要求。具体测试结果如下2所示:

本课题主要实现了基于Vxworks6.7在AMCC460GT硬件平台上的移植,并完成了千兆网络的通信功能,相比以往百兆网络通信,传输速度得到很大提升,相比之前Linux系统下的功能实现,任务实时效率得到了很大提高,保证了项目运行的安全性及稳定性。本文详细介绍了AMCC460处理器的相关设计方法,以及Vxworks系统底层BSP驱动设计相关方法,并在某通信控制終端上得以应用,该系统具有完善的底层监控与系统管理功能,并通过千兆网络实现数据的传输功能,可以满足多种应用领域与应用场景的需求。

上一篇:化学工艺专业学生职业素质论文下一篇:医疗系统人力资源管理会计论文