软件可以通过以下方式控制定时器:预置periodl和periodh寄存器设定定时器周期,设置control寄存器的start和stop位来允许或禁止中断,通过设置control寄存器的ito位来允许或禁止中断,通过设置control寄存器中的cont位设定定时器的工作模式(定时器还是计数器)。NIOS定时器由系统主时钟(clk)驱动,NIOS CPU和其他外设也使用该时钟信号。该时钟同时驱动软件接口寄存器和内部计数器。
3 控制器软件设计
在SOPC Builder开发工具中给各硬件模块设置属性,分配物理地址,配置存储空间的大小,生成硬件系统。接着进行软件应用程序开发,并为各外设模块编写软件驱动。
1.控制命令输入子程序
现场控制命令输入使用6个按键模拟遥控器输入。
按键输入采用中断响应机制,NIOS处理器中断机制最多允许64个异常,包括外部硬件中断源、内部异常源和直接软件异常。按键中断服务程序完成把新命令状态字(6bits)读入命令缓冲区,同时把新命令状态位置为高。
2.串行通信接口子程序
串口通信采用中断响应机制,中断服务程序完成数据包头的检测,数据包的接收,校验,并给新数据包接收标志位置高。串口数据包解码子程序,去除包头包尾,解读命令码,执行相应处理程序。本子程序测试在实验板上进行,实现与PC机串口通信。实验过程为,从PC机上串口调试器软件发送一组数据包到实验板上,实验板上系统接收数据包并校验,解读。如果检验码正确,则再把改数据打包加上校验和,发送到PC机上。
3.控制器应用程序设计
控制器顶层软件应用程序流程图如图3所示。

初始化完成温度给定值设置,显示寄存器设置初值等工作,设备检测完成检测各外设是否完好,否则发出错信号。接着,检查新按键状态位,看是否有新的按键命令输入,如果有,则调用按键处理子程序,否则继续检查是否有新数据从串口输入,如果有,则调用串口数据处理子程序,否则进入A/D采集程序,把采集到的现场温度值与给定值比较,如果差值不在允许范围内,则调用智能算法模块,否则返回。
本文作者创新点
本文的研究表明,基于现场可编程门阵列(FPGA)实现智能控制器是一种有效的手段。本文设计了一种基于SOPC的空调温度智能控制器。智能控制算法模块作为用户自定义逻辑单元连接到SOPC中,并扩展人机接口、通信接口、数据通道等功能,形成具有一定通用性的控制器。研究表明,SOPC实现智能控制器是一种灵活、有效的途径。
作者简介:
万蓉(1965-),女,湖南长沙人,讲师,硕士,研究方向:计算机应用、嵌入式系统等。
毕喜彦(1971-),男,讲师,研究方向:计算机网络、嵌入式系统。
林训超(1960-),男,系主任,副教授,双学士,研究方向:电子信息技术/智能仪表技术。
王霖(1970-),男,四川遂宁人,讲师,硕士,研究方向:计算机网络。
