{ …… /* 释放相应资iounmap( )和release_mem_region();}
以上为DPRAM设备驱动的打开、读写、关闭函数的实现,然后通过以下标记化结构将其驱动的功能映射到前面的具体实现函数上:
static struct file_operations test_fops = {
read:read_dpram,
write:write_dpram,
open: open_dpram,
release:release_dpram
};
另外,在驱动程序初始化时必须通过register_chrdev()注册。在加载该驱动前要使用system(“mknod /dev/设备名 c 主设备号 次设备号”)创建设备文件并为该设备分配设备号。该双端口RAM驱动是通用的,无论什么功能的板卡上面有双端口RAM并且是基于Linux的系统的都可以使用该驱动。
4. 测试
为了测试该无线通信卡的性能,该测试选用了符合EPA(Ethernet for Plant Automation)标准的现场总线系统进行无线扩展。EPA是我国第一个拥有自主知识产权的现场总线标准。所搭建的测试系统基本和有线EPA演示系统一致。包括一个EPA无线现场设备B(包括EPA无线通信卡和IO模块控制卡)和一个EPA无线接入网桥、一台PC机及一个灯箱,如图4-1所示。灯箱中的温度传感器与AI模块相连,将温度值传递给AI模块,并通过设备A发送到以太网上。设备B接收到此温度值后,将其与额定温度值相比较,如果低于额定温度值,则通过AO模块输出电流来控制灯箱内灯泡加热;如果高于额定温度值,则中断AO模块的输出电流,切断灯泡的电流输入,使灯箱内的温度下降,从而达到保持灯箱内温度恒定的目的。