基于GPRS网络传输的终端固件升级系统设计

发布时间:2024-03-04  

设计基于中国移动GPRS无线网络,以C8051F340单片机为核心,GSM/GPRS/EDGE无线模块MC75作为通信模块开发的网络测试终端设备。当该终端设备的固件需要升级时,在远程服务器端开启FTP服务器并与终端建立连接,终端从该FTP服务器上下载已更新的二进制升级文件并存储在外部Flash中,在主程序进行校验后跳转到升级程序段覆盖掉片内Flash中原有的固件程序,完成系统固件远程更新。


引言

嵌入式技术的迅速发展使得越来越多的嵌入式终端设备应用在人们的日常生活中,其中不乏应用在一些偏远地方,甚至工作在无人看管的场合下。人口比较稀少的地方,由于基站分布比较分散,加之人口比较稀疏,基站维护等操作常难以执行,这就需要在某些地方放置网络信号测试仪检测该地区的通信信号质量,并将该信息反馈到远程服务器。同时,由于硬件系统程序设计固有的局限性,固件程序的升级在所难免。针对实际情况,本文开发了网络信号测试仪的单片机远程升级系统。


1 系统硬件设计

整个系统以Silicon Labs公司推出的混合信号片上系统型单片机C8051F340作为核心控制单元,采用GSM/GPRS/EDGE无线模块MC75作为与远程服务器的通信模块,采用上海丽浪电子有限公司推出的R36模块作为GPS模块,通过GPS卫星接收RMC格式的导航电文供终端设备定位用。C8051F340单片机包含两个TTL电平的串行接口,分别与GPRS模块和GPS模块进行通信。GPRS模块可接收远程控制台发来的控制指令,并传输给单片机进行处理。系统总体框图如图1所示。

基于GPRS网络传输的终端固件升级系统设计

1.1 C8051F340介绍

C8051F340具有片内上电复位、VDD监视器、电压调整器、看门狗定时器和时钟振荡器等内部资源,是真正能独立工作的片上系统。Flash存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许远程更新8051固件程序。用户软件对所有外设具有完全的控制,可以关断任何一个或所有外设以降低功耗。

C8051F340的主要特点:

◆高速、流水线结构并与8051兼容的微控制器内核 (可达48 MIPS);

◆全速、非侵入式的在系统调试接口(片内);

◆精确校准的12 MHz内部振荡器和4倍时钟乘法器;

◆64 KB的片内Flash存储器,4532字节的片内RAM;

◆硬件实现的SMBUS接口,2个增强型UART(TTL电平)、1个增强型SPI串行接口;

◆4个通用的16位定时器;

◆5个捕获/比较模块和具有看门狗定时器功能的可编程计数器/定时器阵列(PCA)。

1.2 单片机与GPRS模块通信电路设计

MC75模块是Siemens公司推出的第三代GSM/GPRS/EDGE无线模块。这种模块能处理高数据密集型多媒体设施,可以应用于全球的GSM网络。其主要特点为:

◆支持850 MHz、900 MHz、1 800 MHz、1 900 MHz四种频段;

◆E-GPRS下行速率可达460 kbps;

◆EDGE(E-GPRS)multi-slot ClasslO:

◆GPRS移动基站ClassB;

◆SMS及SMS蜂窝广播;

◆板载SIM卡捅槽或外接SIM卡读卡器,支持USB接口;

◆AT指令GSM07.05及GSM07.07;

◆输入电压为3.2~4.5 V,建议使用3.8 V±O.2 V。

C8051F340与MC75模块的通信电路如图2所示。

基于GPRS网络传输的终端固件升级系统设计

1.3 单片机与串行FIash接口设计

C8051F340内部有64 KB的Flash,而整个系统程序为40 KB左右,为了实现远程升级功能,需将更新的程序存储在外部扩展Flash中。在此选用了Atmel公司的串行Flash,型号为AT45DBl61D。其电压工作范围为2.7~3.6 V,快速串行接口工作频率最高可达到66 MHz,空间大小为17 301 504位,由4096页组成(每页包含512字节或者528字节)。除了主存储器外,它还包括2片512或528字节的静态随机存储单元。在本系统设计中,AT45DB161D可存储系统中所需的一些网络信号参数,以便经过GPRS网络传递给远程主机;另外,还可以存储远程服务器发送的二进制升级文件。其与C8051F340的接口电路如图3所示。

基于GPRS网络传输的终端固件升级系统设计

2 系统软件设计

该终端设备在工作期间,会收到远程服务器发送来的一系列控制命令,如测试周围附近的网络信号指令,给某个手机拨打电话并记录通话状态下的信号指令等。这些操作都是由单片机通过串口发送给GRPS模块的AT指令实现的。例如SEND String(”AT-SMONC\r”),单片机将“AT-SMONC”这条命令通过串口发送给GPRS模块,该模块可自动测得主小区及相邻小区的信号指令数据,并通过串口发送给单片机以供其处理。同样,单片机可接收到远程升级指令,从而启动远程升级功能。

2.1 升级系统软件设计

本系统软件由两部分组成:主程序和升级程序,分别对应于Main工程和Update工程。Main工程负责与远端服务器进行通信,接收服务器发送的指令并进行相应操作;而Update工程编译、链接时,在其编译器链接选项中设置CODE(OxE000,PR?MAIN?UPDATE(0xE000)),可将Upd-ate工程编译、链接后生成的hex文件烧写到单片机内部Flash以0xE000作为起始地址处,同时默认地将Main工程编译、链接生成的二进制文件烧写到内部Flash的起始地址处。单片机在执行主程序过程中,检测到升级标志置1后,单片机跳转到升级程序地址处执行固件升级程序;升级完毕后,复位单片机,程序又从内部Flash的零地址开始执行更新的固件程序。图4为主程序流程,图5为相应的固件升级程序流程。主程序在运行过程中受远程服务器的实时控制。当固件程序需要更新时,在服务器端将准备更新的固件编译、链接后生成的hex或bin文件放入某一固定目录内,启用FTP服务器(如FtpMan),通过TCP/IP协议发送远程升级指令给测试终端;终端收到升级指令后启动相应的FTP接收功能,将远端文件分解成多个数据包并逐个存储在外部Flash中;存储完毕后,主程序会对该接收文件进行CRC校验,若校验无误,则通过函数指针跳转到升级程序功能区,启动升级程序,将二进制文件从外部Flash中转移到内部Flash对应的地址空间中去。单片机复位重启后,就可以从内部Flash的起始地址处执行更新完毕的程序。

基于GPRS网络传输的终端固件升级系统设计

基于GPRS网络传输的终端固件升级系统设计

2.2 函数指针应用

当主程序检测到升级标志后,主程序跳转到升级程序地址处执行升级固件程序,此处使用了函数指针的功能。


结语

本文设计了基于GPRS网络传输的终端固件升级系统,给出了合理的芯片选型,以及独立的固件升级程序。该升级系统已应用到实际产品应用中,并取得了很好的效果。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>