新闻中心

EEPW首页>嵌入式系统>设计应用> 基于ATmega8515的USB-CAN适配器的实现

基于ATmega8515的USB-CAN适配器的实现

作者: 时间:2013-10-26 来源:网络 收藏



图5  EP2 的Rx 中断子程序流程

2. 2  驱动程序编程
设备驱动程序采用Win2000DDK编写,在VC6.0+ +环境中编译. 驱动程序运行于内核模式,其程序组织主要是按功能进行划分,而不是一种层次结构. 即插即用例程和电源管理例程完全按照USB 标准总线驱动程序参考编写.一个驱动程序可以被多个类似的硬件使用,但驱动程序的某些全局初始化操作只能在第一次被装入时执行一次. 而DriverEntry例程就是用于这个目的,它是内核模式驱动程序主入口点. I/O管理器按下面方式调用该例程:
extern“C”NTSTATUS DriverEntry ( IN PDRIVER OBJ ECT DriverObject , INPUNICODE STRING RegistryPath)
DriverEntry 的第一个参数是一个指针,指向一个刚被创建的驱动程序对象.
DriverEntry 的第二个参数是设备服务键的键名.

本设计中该例程的各个域设置如下:
DriverObject - > DriverUnload =
  UsbCan- DriverUnload ;
DriverObject - > DriverExtension - > AddDevice =
  UsbCan- AddDevice ;
DriverObject - >MajorFunction[ IRP- MJ - CREATE] =
  UsbCan- DispatchCreate ;
DriverObject - >MajorFunction[ IRP- MJ - CLOSE] =
  UsbCan- DispatchClose ;
DriverObject - >MajorFunction[ IRP- MJ - READ] =

  UsbCan- DispatchRead ;
DriverObject - >MajorFunction[ IRP- MJ - WRITE] =
  UsbCan- DispatchWrite ;
DriverObject - > MajorFunction[ IRP- MJ - INTERNAL - DEVICECONTROL
] =
  UsbCan- DispatchInternalControl ;
DriverObject - >MajorFunction[ IRP- MJ - POWER] =
  UsbCan- DispatchPower ;
DriverObject - >MajorFunction[ IRP- MJ - PNP] =
  UsbCan- DispatchPnp ;
DriverObject - > MajorFunction [ IRP- MJ - DEVICE- CONTROL ]
=
  UsbCan- DispatchControl.

3  的应用



  本文设计的USB-CAN适配器在分布式PLC 控制系统中的应用如图6 所示,笔记本电脑通过该适配器和PLC控制系统的CAN总线进行连接,实现了一个笔记本对多个PLC进行程序下载及对多个PLC运行状况进行监视,特别是在上位机只进行监视的情况下,可以进行热插拔而不影响系统的运行,给系统调试带来极大的方便. 经USB测试软件测试,其最高传输速率在40m内达到了1Mb/s.

参考文献:

[1].datasheethttp://www.dzsc.com/datasheet/_.html.
[2].USBN9603datasheethttp://www.dzsc.com/datasheet/USBN9603_6750.html.
[3].SJA1000 datasheethttp://www.dzsc.com/datasheet/SJA1000+_609075.html.
[4].RS-232 datasheethttp://www.dzsc.com/datasheet/RS-232+_584855.html.
[5].RISCdatasheethttp://www.dzsc.com/datasheet/RISC_1189725.html.
[6].AT90S1200 datasheethttp://www.dzsc.com/datasheet/AT90S1200+_143803.html.
[7].EPC1datasheethttp://www.dzsc.com/datasheet/EPC1_300880.html.
[8].EPC2datasheethttp://www.dzsc.com/datasheet/EPC2_2058984.html.
[9].EPC4 datasheethttp://www.dzsc.com/datasheet/EPC4+_2058981.html.
[10].PCA82C200datasheethttp://www.dzsc.com/datasheet/PCA82C200_html.
[11].6N137datasheethttp://www.dzsc.com/datasheet/6N137_91364.html.
[12].PCA82C250datasheethttp://www.dzsc.com/datasheet/PCA82C250_.html.
[13].PLC datasheethttp://www.dzsc.com/datasheet/PLC+_1248813.html.


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭