首 页 用户登录 | ![]() |
|||
|
|||
按字母检索 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
按声母检索 | A | B | C | D | E | F | G | H | J | K | L | M | N | O | P | Q | R | S | T | W | X | Y | Z | 数字 | 符号 |
|
![]() |
您的位置: 5VAR论文频道 → 论文中心 → 理工论文 → 电子通信 |
|
|||||
在Windows2000下用多线程实现1394串行总线通信 | |||||
收集整理:佚名 来源:本站整理 时间:2009-01-10 22:15:47 点击数:[] ![]() |
|||||
开发时间,所以ISA接口卡的驱动程序在WinDriver下开发。驱动程序主要完成对ISA接口卡的I/O地址读写及对硬件中断的处理。该ISA卡的I/O端口地址为:0x300~0x510;中断号为9。 3.3.2初始化程序 在开始通信前,首先要对串口资源、链路层寄存器及程序设置进行初始化,其中包括链路层寄存器初始化、打开驱动设备、打开硬件中断、定义临界区对像及收发缓冲区等工作。 CCriticalSection m_cs; file://定义临界区对像 链路层寄存器初始化是1394串行总线能正常工作的基础,下图是链路层寄存器初始化的流图。复位中断寄存器IntFlagReg,使其为零;写中断屏蔽寄存器IntMaskReg,打开中断允许使能位、发送中断位及接收中断位;写FIFO控制寄存器FifoCtrlReg,清除接收和发送FIFO,并设置接收和发送FIFO的大小;写物理层芯片访问寄存器PhyAccessReg,初始化总线复位;写控制寄存器ControlReg,打开发送,接收使能位等。 3.3.3中断处理程序 InterruptHandle()是一个全局的中断处理函数,它一直在等待硬件中断,一旦有中断到来就立即响应。具体形式如下: UINT InterruptHandle (LPVOID wParam) 3.3.4 解释处理程序 解释处理程序实际上是用户自定义的一个消息处理函数,它一直在等待中断处理程序发来的接收到数据包的消息。如果有消息到达,就从rBuf中取出数据包进行解释。如果是自标识包,将接收到的数据放到自标识缓冲区SelfIDbuf中;如果是读请求包,从dataBuf中取出数据,并根据读请求数据包的包头构造相应的读响应包放到sBuf中;如果是写请求包,从rBuf中取出数据部分放到数据缓冲区dataBuf中等待做进一步的处理,并根据写请求数据包的包头构造相应的写响应包放到sBuf中。 4 结束语 本文针对实际应用中对1394串行总线通信实时性和可靠性的要求 ,采用中断的方法来接收和发送数据,并提出了在Windows2000下运用多线程技术来实现1394串行总线异步通信的方法,有效的解决了在串口通信中出现的数据丢失和不稳定问题,提高了系统的执行效率和资源的利用率,实践证明这是一种有效的途径。 |
提供人:佚名 | |
【返回上一页】【打 印】【关闭窗口】 |
![]() |
5VAR论文频道 |
![]() |
5VAR论文频道 |
![]() |
关于本站 -
网站帮助 -
广告合作 -
下载声明 -
网站地图
Copyright © 2006-2033 5Var.Com. All Rights Reserved . |