一种便携式电视机软件的升级系统设计
4.电脑系统以256字节作为一个数据块进行发送,每发送完256字节后发送一个累加校验和进行校验。W79E632校验数据有效后,启动FLASH写程序SPI_Write,将RAM中的256字节数据写入FLASH;写完后向电脑系统发送响应信号"RIGHT",电脑系统继续发送数据。W79E632判断下一个字符是否是"结束"字符(即每一个数据块的第一个字符),不是"结束"字符则继续接收数据;如果是"结束"字符则启动SPI_Write程序将"结束"字符直接写入FLASH,然后结束。W79E632校验后数据无效,则立即向电脑系统发送响应信号"ERROR",然后结束。
5.结束时,W79E632清除内部RAM、I/O口缓冲寄存器和串行接口寄存器中的数据,将定时器、UART接口或I2C接口恢复为初始状态,读出堆栈中保存的数据并写入相应的寄存器以恢复中断前状态;绿灯继续闪动2s后开中断,系统恢复正常运行状态。
作为主机发送升级程序数据
升级系统作为主机的流程如图4所示。
1.系统正常运行,开串口中断、外部中断及定时器中断,
查询I/O口P3的状态,等待中断。
2.从I2C接口发送存储的升级程序数据时,按一下开关SW3产生外部中断INT1。此时设置与产生INT0时相同。如果查询到P3口有脉冲则屏蔽除串口中断、定时器中断外的所有中断,其他设置与产生INT1中断相同。
3.W79E632启动FLASH读程序SPI_Read,读取FLASH中存储的升级程序数据,每次连续读完256字节存入W79E632的RAM中。W79E632每次存储数据块的第一个字符存储前,判断是否是"结束"字符。
4.W79E632读到"结束"字符,表示数据发送完毕,进入结束处理,反之则将通过串口或I2C接口发送数据。如果通过串口发送数据,则启动UART_Write将RAM中的数据写入串行接口寄存器进行发送;如果是I2C接口发送数据,则启动I2C_Write将RAM中的数据写入I/O口缓冲器寄存器进行发送。每发送完256字节的数据,W79E632继续发送一个累加校验和并等待电视机的响应信号。收到电视机返回的"RIGHT"信号则继续发送数据,如果收到返回的"ERROR"信号则结束。
5.结束时,W79E632清除内部RAM、I/O缓冲寄存器和串行接口寄存器中的数据,将定时器、UART或I2C接口恢复为初始状态,读出堆栈中保存的数据并写入相应的寄存器以恢复中断前状态;绿灯继续闪动2s后开中断,系统恢复正常运行状态。
结语
本文提出以单片机W79E632为基础平台的一种便携式电视机软件升级系统的设计,系统能够用UART接口或I2C接口接收并存储电视机升级程序数据,同时能够通过UART接口或I2C接口将存储的升级程序数据传送给电视机,实现电视机的软件升级。
发布者:吕勇
- 如何为手机等便携式设备增加视频输出到电视的功能(04-13)
- TI 便携式媒体播放器解决方案(05-13)
- 各种PMP解决方案的比较(06-20)
- 解析便携式应用中电源管理新方案(01-25)
- 如何给便携式设备添加音乐和数据传输功能(05-13)
- 便携式多媒体设备的电源管理新思路(05-16)