本文讨论了核电厂电气柜中的PIC单片机远程程序升级的方法。 PIC单片机(微控制器)是一种广泛使用的半导体集成组件,它通过可编程的接口完成控制任务。文章主要针对PIC18F258型号的单片机,提供了一种远程升级程序的解决方案,旨在解决现场程序更新的不便。
文章提到远程程序升级的必要性。在传统的程序升级方法中,编程人员需到达现场,尤其对于偏远地区的设备,这种方法费时费力,增加了维护成本。远程升级通过无线网络传输程序,既减少了人力物力成本,又缩短了升级时间,提高了效率。
远程程序升级的原理在于微控制器的内部可编程存储器(Flash)擦写技术。这允许在设备运行过程中对程序存储区域进行读写操作,进而实现远程升级。远程升级的实现方法有两种,一种是使用自带IAP功能的单片机(例如LPC系列的ARM7),直接调用函数即可完成升级。另一种适用于没有内置IAP功能但具备擦写Flash功能的单片机,如PIC系列单片机。这种单片机需要通过编程制作引导区,用以控制对其他存储区域的读写。
硬件系统设计中,以PIC18F258单片机为例,设计了一套可远程升级的硬件系统。PIC18F258含有1.5KB的RAM和32KB的Flash,需要外接存储器以临时存放更新程序。文中选择了AT45DB161作为外部存储器,它有16MB的存储空间,并采用SPI串行总线接口。无线传输网络利用GPRS模块,如摩托罗拉公司的G24模块,上位机和下位机通过RS232接口进行数据传输。
软件系统设计包括传输协议的设计和上位机软件的设计。在传输协议设计方面,为了确保程序数据的准确传输,将编译器生成的16进制文件拆分成数据帧,分别发送程序地址和程序内容。为保证数据传输的正确性,使用校验和验证。上位机软件采用C++开发,负责将16进制程序代码按照规定协议编码,并通过GPRS网络发送。
升级过程中,上位机软件将编译后的16进制程序代码进行拆分,按规定的协议编码后,通过GPRS无线网络发送给目标PIC单片机。单片机接收到编码后的数据包后,按照协议解码并存储到RAM中。之后,利用串行总线如SPI,将数据包传至外部存储器保存。全部程序接收完成后,PIC单片机引导区程序控制PIC单片机将外部存储器中的程序分批读入RAM,并写入应用程序区。程序更新完成后,复位单片机,使其运行新的程序,完成远程程序升级。
通过上述方法,实现了核电厂电气柜PIC单片机的远程程序升级,大大简化了程序升级的过程,降低了升级成本,并且缩短了升级时间。同时,该方法适用于具有擦写Flash功能的其他单片机,具有一定的通用性。