2 硬件连接设计
管道通径仪的结构框图如图3所示。管道检测时MCU采集参数并存储在Flash中,检测完毕后通过USB接口传输至上位机进行数据分析。
如前所述,对K9F2G08U0M的操作可以通过只向I/O接口发送数据(包括命令码、行列地址码等)来实现,因此最直接的方式是使用单片机的一个端口作为与芯片的数据接口,并以单片机的GPIO引脚连接CE、ALE、CLE以及,编程时按照手册中的时序图控制这些引脚。但是由于每次操作这些引脚都需要大量的控制线电平转换,使程序十分繁冗。
由于C8051F020提供了外部存储器接口(EMIF),而接口时序由EMIF硬件产生,使其对片外扩展的器件操作像对内存单元的寻址一样简便快捷。下面采用这种硬件连接方式,对K9F2G08U0M的主要操作进行介绍。电路如图4所示,C8051F020只画出了EMIF接口部分,选用非复用方式,以 IO7~0作为数据线,CE、ALE、CLE作为地址线。由于通径仪中需要随时写入数据,因此写保护端接高电平。
采用外部存储器接口对器件编程时,最重要的是保证总线时序与器件时序一致。C8051F020的EMIF接口时序能够以系统时钟周期为单位编程,因此允许连接具有不同建立时间和保持时间要求以及不同/WR、/RD选通脉冲宽度的器件。
单片机EMIF在非复用方式,一次片外XRAM 操作的最小执行时间为5 个SysClk 周期(用于或 脉冲的1 个SysClk+4个额外SysClk)。若单片机系统采用20MHz晶振,一次MOVX操作的最小执行时间为250ns,而K9F2G08U0M交流参数中最小建立保持时间的上界为100ns,则即使采用EMI0TC最小的时序参数也不需要在程序中额外加入延时指令。
3 软件设计
本系统采用C语言编程,提高了开发速度并降低了维护难度。下面分别介绍存储器的主要操作。
3.1 按页读
K9F2G08U0M中有一个2112B即1页大小的数据寄存器,这就决定了存储器的读操作是以1页为基本单元进行的。如图5所示,写入30H后,行地址所指定的页中的数据将在25?滋s内传输到数据寄存器中,然后在脉冲的作用下,不但可以从指定的列地址开始连续读到该页末尾,也可以按照流程图中的虚线部分输入随机读指令码,任意读取该页中的内容,并且不受次数限制。