0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子设计 2018-09-17 09:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

设计基于中国移动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网络传输的终端固件升级系统,给出了合理的芯片选型,以及独立的固件升级程序。该升级系统已应用到实际产品应用中,并取得了很好的效果。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6078

    文章

    45629

    浏览量

    675253
  • GPRS
    +关注

    关注

    21

    文章

    986

    浏览量

    133345
  • 通信模块
    +关注

    关注

    2

    文章

    181

    浏览量

    33814
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    罗德与施瓦茨矢量网络分析仪固件升级步骤及注意事项

    罗德与施瓦茨(RS矢量网络分析仪的固件升级步骤及关键注意事项,帮助用户安全、高效地完成升级操作。   一、固件
    的头像 发表于 04-20 16:25 122次阅读
    罗德与施瓦茨矢量<b class='flag-5'>网络</b>分析仪<b class='flag-5'>固件</b><b class='flag-5'>升级</b>步骤及注意事项

    求助,关于固件升级的xmodem速率问题求解

    想咨询一下有没有方法改板子的波特率,升级固件的时间太长了
    发表于 03-27 07:45

    RS485转WiFi串口数据采集透传终端技术架构与实现原理

    (Session Keepalive)正常。 ·调试域 :板载轻触复位按键,支持硬件级重启,便于固件升级与故障排查。 3. 通信协议栈与数据透传机制 3.1 多协议支持架构 终端内置轻量化网络
    发表于 03-20 14:25

    从站固件升级不用再拆机?EtherCAT FOE技术解密

    是什么?为什么会广泛应用在工业自动化领域呢?传统固件升级的困境现代EtherCAT工业网络往往连接着数十甚至上百个从站设备。当需要升级设备固件
    的头像 发表于 01-26 11:35 387次阅读
    从站<b class='flag-5'>固件</b><b class='flag-5'>升级</b>不用再拆机?EtherCAT FOE技术解密

    如果给CW32W系列设备批量升级

    如果想给CW32W系列设备批量升级一般能用类mesh的协议这么做吗?先把固件传输到每个设备的spiflash或者存储中,然后检测到新固件就跳转到新
    发表于 12-10 07:20

    可以使用CW32的ChirpIOT来实现芯片固件升级

    可以使用CW32的ChirpIOT来实现芯片固件升级吗?这种升级每包有限制吗?一般是多少,可以实现组网内的所有设备同时这种升级吗?
    发表于 12-05 06:51

    Bootloader固件升级的步骤

    ,也可以不更新,在项目中,我们通常会对 FW 版本号进行对比,会将 MCU 中的 App 程序更新最新的版本,起到固件升级的效果。更新的话,BootLoader 更新完程序后,跳转到新程序运行;不更新
    发表于 11-19 07:41

    卫通终端设备如何适配天地一体网络

    卫星通信系统主要由卫星(星座)、地面站与终端设备三部分组成。终端设备的核心功能是完成信号的收发与转换:接收卫星转发的下行信号,经解调、解码后传输至用户
    的头像 发表于 11-04 10:14 1003次阅读

    使用RTT的维护云进行远程固件升级(OTA),怎么没有网络升级的方式?

    使用RTT的维护云进行远程固件升级(OTA),怎么没有网络升级的方式的?只有蓝牙,近距离的固件升级
    发表于 10-13 06:36

    IR611S固件如何升级

    IR611S固件升级
    发表于 08-06 07:34

    固件升级过程中,如何禁用EC INT中断?

    固件升级过程中,EC INT中断经常会被触发,如何禁用? 这个中断,协议栈是怎么触发的或者说需要满足什么条件?
    发表于 07-25 06:43

    工业设备远程升级:CATCOM-100的高效解决方案

    在工业环境中,设备固件的更新往往因为设备分布广泛且位置偏远而变得低效。本期我们将介绍如何通过CATCOM-100智能网联DTU终端实现远程固件升级,提升设备管理效率。工业设备
    的头像 发表于 07-21 11:35 706次阅读
    工业设备远程<b class='flag-5'>升级</b>:CATCOM-100的高效解决方案

    网络化多电机伺服系统监控终端设计

    信息,并计算系统各项性能指标。实验结果表明,系统响应速度快、运行稳定,可靠性高。 纯分享帖,需要者可点击附件免费获取完整资料~~~*附件:网络化多电机伺服系统监控
    发表于 06-23 07:15

    深入探索DWDM非相干传输应用,易飞扬引领高效经济网络传输新纪元

    在当今数字化飞速发展的时代,高速、稳定且经济的网络传输解决方案成为推动企业业务增长的关键。我们深知您对于提升网络带宽、降低运营成本以及实现业务快速部署的需求,因此,我们诚挚地向您介绍两款领先的100G DWDM产品以及我们的经济
    的头像 发表于 06-10 18:06 691次阅读
    深入探索DWDM非相干<b class='flag-5'>传输</b>应用,易飞扬引领高效经济<b class='flag-5'>网络</b><b class='flag-5'>传输</b>新纪元

    Air8000 Wi-Fi功能实操指南:固件升级网络配置步骤!

    若您计划使用Air8000的无线网络功能,请按以下步骤操作,完成全部步骤后方可正常使用。快快学起来吧~ 一、Air8000升级Wi-Fi实操要点   本文以Air8000核心板为例,采用串口线刷方式
    的头像 发表于 05-28 15:48 959次阅读
    Air8000 Wi-Fi功能实操指南:<b class='flag-5'>固件</b><b class='flag-5'>升级</b>与<b class='flag-5'>网络</b>配置步骤!