基于简化HDLC规程的通信卡及驱动程序设计_第1页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于简化hdlc规程的通信卡及驱动程序设计在我国的靶场测控领域,全部的数据交换都是基于简化版的hdlc规程举行的,因此我们自行研制开发了基于简化hdlc规程的通信卡。简化hdlc规程主要是为了提高通信的实时性,将hdlc规程中全部通信联络指令帧所有简化,只保留数据通信帧,从而保证一定的实时性。因为该卡具有牢靠性高,用法容易便利,工作时具有智能化等特点,被广泛地应用于测控系统数据传送的各个领域中。同时,随着windowsxp操作系统在测控系统逐渐应用,开发通信卡windowsxp驱动程序势在必行。因此,我们针对自行研制的通信卡开发出了核心态的驱动程序,经过广泛的用户用法,普遍反映应用好。下面介绍

2、该通信卡的设计以及驱动程序的设计。通信卡的硬件设计1 通信卡的主要特点通信卡的硬件设计目的是智能化通信:在卡上具有4个dma通道及相应的数据缓冲存储区。在数据的接收过程中,通信卡会自动接收帧数据,判别帧长度,在帧尾将接收到的帧数据提交系统。在发送数据过程中,系统只须把发送的数据提交给本卡,详细的发送过程由该卡自行完成,不因多路通信而使主机增强开销。该卡有内/外时钟两种工作方式,近距离可省去调制解调器,波特率为600b/s64kb/s,提供2路符合rs-232/ccitt v.24和rs-422a标准的接口信号。2 通信卡的设计图1 通信卡框图通信卡组成框图1所示。其主要由dma控制器、竟争仲裁

3、器、串行通信控制器、数据缓冲存储器sram、存储器i/o映像和物理地址产生器、总线接口及防护、波特率产生器、接口电路等单元电路组成。dma控制器作为通信卡的主设备,控制卡上的数据接收和发送(来自通信控制器和cpu),并负责仲裁优先权。因为在举行数据通信时,允许主机cpu拜访本卡sram,且主机对其中某一路发控制指令时,不影响其余三路通信,这样将会使主机cpu与本卡dma竟争本卡总线控制权。而总线上没有给出主机cpu命令排队状态序列,故不能挺直设计多主竟争,因而在本卡总线上用门阵列设计了一个状态机,不断地监视总线争用状况,完成本卡总线竟争、仲裁功能。完成hdlc规程的串行通信的器件是intel8

4、274多规程串行控制器,它能完成2个自立的串行接收/发送全双工通信。为了使4个信道在一帧数据的发送或接收过程中,主机不干预,故将发送的一帧数据在发送开头前由cpu用批指令放入卡上的sram中;同样,在接收过程中,卡上dma将接收到的数据放入sram中,等一帧接收完成后,再用批指令取出,放入系统存储器中。卡上sram不占用主机内存地址,采纳i/0映像,该适配器插入主机之后,主机通过系统i/o地址对其拜访,这由地址产生器完成。总线接口包括数据,数据开关电路,读、写及中断等控制电路,地址译码等。波特率产生器提供了一个可编程的时钟,用户可自行设置通信速率,供工作于内时钟方式时用法。接口电路提供符合rs

5、-232/ccitt v.24和rs-422a标准的接口信号。3通信流程设计假如要发送一帧数据,cpu用批指令将数据放到本卡sram中,然后设置相应的发送dma通道。dma通道是非自动重装方式,启动8274控制器发送,然后cpu就不需要管理,由卡上硬件自动发送。假如需要接收数据,启动接收通道。接收通路自动搜寻输入信号,搜寻到数据帧时,由卡上dma控制器来管理,将接收的数据放入本卡sram中,并向cpu哀求中断,读出数据。4 总线竟争设计因为同时可举行四路通信,且cpu可随时对某一路发控制指令或拜访卡上sram存储器,就将浮现cpu与本卡主设备dma争用本卡总线的情况。因为isa总线没能给出cp

6、u命令排队状态序列,这给总线仲裁带来了困难,而本卡的总线竟争、仲裁是由可编程规律器件设计的状态机来完成的。状态机用法一个4mhz信号作为时钟,共设3种状态: cpu控制状态。 dma控制状态。 空闲状态, cpu及dma均未能得到控制权。当状态机检测到无cpu及dma申请总线用法权时,就进入空闲状态,而一旦cpu或dma哀求总线,状态机立刻将总线用法权交给cpu或dma。假如正在cpu控制状态期间,dma申请总线用法权,状态机仍然判定cpu控制总线,让dma处于等待,直到检测cpu命令完成,状态机才转为dma控制状态。假如在dma控制状态时,cpu申请总线用法权,状态机仍然判定dma控制总线,

7、让cpu处于等待,直至dma字节传送完,状态机转为cpu控制状态。cpu及dma对总线的用法权是单个命令或字节传送,不设置总线封锁,因而cpu、dma可频繁交换用法权,不会浮现等待时光过长的现象。通信卡的驱动程序设计1 设备驱动程序的i/o模型通信卡的驱动程序是利用windowsxp的ddk软件开发的标准的核心态设备驱动程序。它用法统一的“文件”形式,用户可以通过代表通信卡设备的文件名,在win32子系统中用文件操作函数来拜访。该设备驱动和程序可以按照用户的需要,设置为自动加载,或手动加载,也可以动态的加载该驱动程序。通信卡的驱动程序设计成为支持同步i/o模型,也可以为异步i/o模型。2 发送

8、数据i/o例程设计在用户态提交发送任务到核心态,由i/o管理程序负责调用驱动程序,驱动程序发送irp交给硬件,假若当前发送器不忙,则详细的发送操作所有由发送器自行完成,而驱动程序则返回已经一个本帧可以发送的标记。详细的发送完成结果则可以在发送任务完成后查询得到。可是,假如程序向当前设备发送器提交发送任务时,该发送器正在处理上一帧,那么则有两种办法处理。 立刻方式:立刻返回一个错误,当前设备忙,不能发送。堵塞方式:i/o管理器程序会调度相应的异步处理例程,将当前的发送任务放进任务队列中,返回一个标记:i/o挂起,当前设备忙,发送任务提交任务队列。驱动程序会在发送器空闲时,提交任务队列中的发送任务

9、给发送器。完成发送任务后,将相关文件句柄设为有信号状态,通知本次发送任务完成。3接收数据i/o例程接收数据例程采纳客户/服务器的模式设计。因为用户的接收哀求和硬件的接收并不是同步的,所以在设计中,为避开走失数据,考虑制造一个特地的接收线程。这样,同步用户哀求、接收线程、硬件层之间的通信就必需认真地设计。图2暗示了用户态接收哀求、接收线程以及硬件层之间的通信同步。图2 用户态接收哀求、接收线程与硬件层之间的通信同步 硬件层与接收线程之间通信硬件层与接收线程之间通信的同步是通过同步大事对象来实现的。同步大事对象通常处于无信号状态,惟独当胜利地接收到一帧时,才将该大事置为有信号状态。接收线长期等待同

10、步大事对象,在没有收到数据时,因同步大事对象处于无信号状态而堵塞。当硬件检测到数据时,实时中断服务程序负责将同步大事对象置为有信号状态,接收线程就会释放堵塞。将通信卡sram上的接收数据读进接收线程缓冲区队列,然后将同步大事对象置为无信号状态,接收线程再次堵塞,等待接收下一帧数据。 用户层和接收线程之间的通信当用户提交接收任务时,由驱动程序的调度程序读取接收线程的缓冲区队列,并将标记置为“空”,同时将缓冲队列大事置为无信号状态,并返回,假如缓冲区是空,则 立刻方式:立刻返回很多据。 堵塞方式:堵塞直到有数据队列进入。接收队列的每个缓冲区都对应一个通知大事,假如接收线程将sram中的数据读进队列

11、,就将相应的通知大事置为有信号状态,用户哀求就等待该通知大事,只要有数据在队列中,就读取返回,否则被堵塞。4 硬中断服务程序设计通信卡在全双工的通信中具有实时性,而且在较高的波特率,硬中断十分多。为了防止高优先级中断过多地抢占cpu时光,设计中采纳了实时中断服务程序和延迟过程调用的办法。在windowsxp系统中,每个内核函数和过程都运行于特定的优先级。较高优先级的函数或大事可以抢占较低优先级,反之则不然。实时中断服务程序isr运行于dirql级,具有较高的优先级,它只能被更高级的硬中断所抢占,不会对同级或较低优先级的硬中断的响应。所以,在实时中断服务程序中,只做尽量少的必需工作,即读出中断向

12、量,而将大量的数据传送及处理等工作交给延迟过程dpc去完成。由于dpc过程运行于dispatch_level级,是相对较低的优先级,它可以被任何级的硬中断所抢占。这样,既保证了硬中断的准时响应,又提高了程序的性能。5 驱动程序入口例程windowsxp为每个核心态的驱动程序提供了一个默认的标准入口点driverentry()。设计中,考虑到该例程运行于passive_leve级,系统只运行该例程一次就抛弃了,所以在驱动程序中用到的重要数据、对象等都不能保存在driverentry()例程中,必需在初始化过程中分配一块nopaged内存来保存。通信卡的驱动程序的driverentry()例程主要

13、完成如下功能。读取registry的硬件配置信息;声明i/o地址、中断等资源;创建代表通信卡的设备名mpsc,该名字对win32子系统是可见的;设置调度例程入口点;分配一块nopaged的内存,存储重要信息;衔接硬中断,设置中断服务程序;初始化线程、大事、信号灯、dpc等内核对象;返回状态status_success。假如在以上过程中碰到错误,则需要做以下工作:断开硬中断;释放硬件资源;将相关的错误信息打包,并记录;返回错误信息。6 设计驱动程序中需要注重的问题于通信卡在应用中具有一定的实时性,为了克服中断的不确定性,提高系统的性能,开发了windowsxp系统全部驱动程序中最难的异步驱动程序。在系统的内核开发,异步模型i/o操作中,内核对象的同步非常复杂,细微的差错都会导致系统彻底崩溃。在设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论