图3 整个系统的软件流程图
3.1 LCD驱动软件的设计思想
LCD驱动软件的功能是完成数据最终输出显示,其主要软件流程有数据的收发、LCD上按键的读取、LCD扫描等。数据收发是为了完成数据与CPU、LCD液晶显示器进行数据的传输,CPU通过驱动芯片向LCD输送数据,而LCD要向CPU返回响应数据等。为了增强人机界面的可读性,在LCD上设置了几个按键,当有按键反应时,应当向CPU发出相应的响应,并且可以通过按键对LCD的显示界面设置和对其他系统参数进行设置。LCD的扫描是为了保证显示不出现明显间断、不出现花屏现象,在出现花屏现象时能够进行准确的错误响应。其中的按键设计没有给每个按键使用硬件中断,因为在本系统中,LCD显示驱动的任务优先级在应用程序中是最高的,按键统一使用一个硬件外部中断,然后用软件对按键进行软件中断安排,确定软件优先级;另一个原因由于按键较多,没有足够的硬件中断设置为按键中断,如果设置为中断扩 展,除了要进行硬件的扩展,还要进行软件扩展,将浪费很多资源。
本设计中,LCD的驱动需要编写2个文件,其中一个是C语言文件,另一个是C语言头文件。C语言文件是通信接口协议文件,需要与其他模块进行数据的交换。而头文件是设计一些LCD基本参数,在系统运行中,这些参数基本不变。
3.2 USB通信软件的设计思想
本系统设计的USB通信软件通过中断响应来实现,这样做的目的是CPU在没有USB设备或者不需要USB设备时,可以进行其他工作,节省CPU和操作系统的资源。其有利于保护CPU。
3.3 FLASH读写操作软件的设计思想
整个程序文件包括芯片的擦除、芯片的写入和读取、数据的效验等几个部分。擦除是为了存储器能够进行重复利用而不更换芯片;芯片的写入和读取是整个文件的中心,负责存储器的数据的写入,在适当时候要读取数据;效验是为了保证数据的正确,在错误时需要报警。
本设计中,存储器有3个存储器地址入口,所有的数据都需要经过这3个地址入口,因此,必须保证此3个地址入口在任何时刻都没有与其他地址发生地址交叉的状况。
3.4 μC/OS-Ⅱ操作系统的移植
μC/OS-Ⅱ实时操作系统是一种可移植、可固化、可裁剪及可剥夺型的多任务实时内核(RTOS),适合应用于各种微处理器和微控制器。其性能足可以媲美于各种商用内核,在某些方面表现更佳。所有代码都是采用ANSI的C语言编写,故具有良好的可移植性。