基于ISA总线的计算机与DSP的通信
- 格式:pdf
- 大小:199.24 KB
- 文档页数:3
用CPLD实现单片机与ISA总线接口的并行通信摘要:介绍了用ALTERA公司MAX7000系列CPLD芯片实现单片机与PC104ISA总线接口之间的关行通信。
给出了系统设计方法及程序源代码。
关键词:CPLD ISA总线并行通信CPLD(Complex Programmable Logic Device)是一种复杂的用户可编程逻辑器件,由于采用连续连接结构,易于预测延时,从而使电路仿真更加准确。
CPLD是标准的大规模集成电路产品,可用于各种数字逻辑系统的设计。
近年来,由于采用先进的集成工艺和大指量生产,CPLD器件成本不断下降,集成密度、速度和性能大幅度提高,一个芯片就可以实现一个复杂的数字电路系统;再加上使用方便的开发工具,使用CPLD器件可以极大地缩短产品开发周期,给设计修改带来很大方便[1]。
本文以ALTERA公司的MAX7000系列为例,实现MCS51单片机与PC104ISA总线接口的并行通信。
采用这种通信方式,数据传输准确高速,在12MHz晶振的MCS51单片机控制的数据采集系统中,可以满足与PC104 ISA总线接口实时通信的要求,通信速率达200Kbps。
1 系统总体设计方案用CPLD实现单片机与PC104ISA总线接口的并行通信,由于PC104主要完成其它方面的数据采集工作,只是在空闲时才能接收单片机送来的数据,所以要求双方通信的实时性很强,但数据量不是很大。
因此在系统设计中,单片机用中断方式接收数据,PC104采用查询方式接收数据。
系统设计方案如图1所示。
在单片机部分,D[0..7]是数据总线,A[0..15]是地址总线,RD和WR分别是读写信号线,INT0是单片机的外部中断,当单片机的外部中断信号有效时,单片机接收数据。
在CPLD部分,用一片MAX7000系列中的PM7128 ESLC84来实现,用来完成MCS51与PC104ISA总线接口之间的数据传输、状态查询及延时等待。
在PC104ISA部分,只用到PC104的8位数据总线D[0..7],A[0..9]是PC104的地址总线;/IOW和/IOR是对指定设备的读写信号;AEN是允许DMA控制地址总线、数据总线和读写命令线进行DMA传输以及对存储器和I/O设备的读写;IOCHRDY是I/O就绪信号,I/O通道就绪为高,此时处理机产生的存储器读写周期为4需5个时钟周期,MCS51通过置此信号为低电平使CPU插入等待周期,从而延长I/O周期;SYSCLK是系统时钟信号,使系统与外部设备保持同步;RESETDR是上电复位或系统初始化逻辑信号,是系统总清信号。
简析DSP与PC机间的数据通信
DSP(数字信号处理器)是一种专门用于数字信号处理的处理器,它可以实现高速、高效的数字信号处理功能。
在数字信号处理应用领域,DSP经常需要与PC机进行数据通信,以实现
数据采集、处理、显示等功能。
本文将从以下几个方面简析DSP与PC机间的数据通信。
一、串口通信
串口通信是DSP与PC机间最常见的数据通信方式。
这种通信方式的特点是通信速度较慢,但通信距离较远,对于一些需要长距离传输数据的应用场合十分有用。
串口通信需要使用串口线连接DSP和PC机,并通过串口通信协议进行数据交换。
二、并口通信
并口通信是另一种常用的数据通信方式,它与串口通信相比通信速度更快,但通信距离较短。
并口通信需要使用并口线连接DSP和PC机,并通过并口通信协议进行数据交换。
三、网络通信
网络通信是一种较为高级的数据通信方式,它可以通过局域网、广域网等网络技术实现DSP与PC机之间的数据传输。
网络通信需要使用网络协议进行数据交换,如TCP/IP协议等。
四、USB通信
随着USB技术的不断发展,USB通信也成为了一种越来越受欢迎的数据通信方式。
DSP与PC机间的USB通信可以通过USB线连接,通过USB通信协议进行数据交换。
相比于串口和并口通信,USB通信的通信速度更快,通信距离更远。
总之,在选择DSP与PC机间的数据通信方式时,需要根据实际应用需求选择最合适的通信方式。
不同的通信方式都有其优势和劣势,应该根据实际情况进行选择。
同时,应该根据通信方式选择合适的通信协议,以保证数据的正确传输。
基于 ISA 总线的 ADSP2106x 信号处理板的设计 Design of ADSP2106x Signal Processing Board Based on ISA Bus作者:中国科学院电子学研究所 禹卫东 吴淑梅106x 是 AD 公司推出的一种浮点系列高速 DSP 芯片。
本文主要介绍在 ISA 总线上开发 ADSP2106x 信号处理板的设计原理。
计算机通过板的运行,完成高速信号处理的任务。
信号处理 ISA 总线 ADSP2106x2106x 介绍06x 是 Analog Device(AD)公司推出的一种性能先进的浮点系列高速 DSP 芯片,具有 120MFLOPS 的峰值运算能力。
该速度在当今的 DS但 ADSP2106x 的综合性能却非常优异,这主要是由于它在片上各种资源的平衡和并行处理能力。
它拥有大容量的片内双口 SRAM:ADSPDSP21062 为 2Mb,可供主处理单元和外部接口同时读取。
它的接口丰富,包括 4GB(Byte)空间的外部存储器接口、6 个 Link 接口、2 个同0 个 DMA 通道和 1 个 Host 接口,大量的 DMA 通道使数据进出芯片灵活多样,畅通无阻[1]。
最重要的是,ADSP2106x 拥有非常强的并的仲裁逻辑可使 6 片 ADSP2106x 和 1 个主机很方便地连接在一起并行工作,共享片内和片外资源,对于分布式处理系统非常适合。
06x 的内部结构如图 1 所示[2,3]。
它主要由以下 4 个部分组成:主处理器、内部存储器、I/O 处理器、外部接口。
4 个部分之间通过多条总图 1 ADSP2106x 内部结构框图理器。
它主要完成指令的存取和执行、数据的存取和运算。
主处理器中包括指令执行单元、指令缓存器、2 个地址产生器、通用数据寄存器法器、逻辑单元(ALU)、桶形移位器。
处理器,由于其程序总线和数据总线分开,所以,取指操作和取数操作可以并行不悖,即所谓的哈佛结构。
九十年代以来,我国从俄罗斯相继引进了不同型号的导弹,同时,也引进了配套的导弹测试系统。
近年来,随着导弹测试系统寿命的临近,在国内现有技术基础上延长其使用寿命是维修保障部门的重要任务。
为此研制导弹测试系统关键部件的备件,成为延长系统寿命的一个重要手段。
文中依据某型导弹测试设备的要求,设计并研制了基于ISA总线的多通道控制电路:该电路集成了16路光电隔离输入通道和8路单刀双掷(SPDT)继电器输出通道,每一路输入或输出通道都配有指示灯实时标识目前的状态。
在测试系统中,该控制电路可在ISA测试总线的控制下将数据信号、指令信号和电源信号分配至不同电路,实现对导弹的自动测试。
实际应用结果表明,研制的多通道控制电路达到设计要求,可完全替代俄制电路。
1 ISA总线简介ISA(Industrial Standard Architecture)总线是IBM公司于1984年进一步扩充XT总线标准而形成的。
ISA总线标准支持24位的地址线、16位的数据线;支持11级中断IRQ3~IRQ7、IRQ9~IRQ12、IRQ14~IRQ15;支持7个DMA传输通道DRQ0~DRQ3、DRQ5~DRQ7;支持主从控制、I/O等待和I/O校验等功能。
为了与XT总线保持向下兼容,ISA总线在信号功能的定义和物理接口上均作了特殊的安排,即保持原有的XT总线不变,重新增加一个36线的连接插槽,分成C、D两面,扩充的功能设计在C、D两面的信号线上。
其引脚定义如下:1)数据总线SD7~SD0 SD7~SD0为8位双向三态数据总线,在芯片和主接口间传输命令、数据和状态。
SD7为最高位。
寄存器选择引脚为SA9~SA4、SW DIP-6(板基址011001)和AEN#。
这些引脚决定转换是否响应I/O周期,当AEN#为逻辑低电平且SA9~SA4与6位拨动开关值完全匹配时,内部产生一片选信号使转换响应I/O周期。
2)地址信号SA3~SA0 I/O读写操作时作为转换电路上FPGA芯片内的寄存器选择信号。
DSP通讯协议引言DSP(数字信号处理器)通讯协议是一种用于在DSP芯片之间或者DSP芯片与外设之间进行数据传输和通信的协议。
它定义了一套规范和标准,以确保不同设备之间的互操作性和数据的正确传输。
本文主要介绍DSP通讯协议的基本概念以及常见的通讯方式和协议。
1. DSP通讯协议概述DSP通讯协议是一种用于在DSP芯片之间或者DSP芯片与外设之间进行数据传输和通信的协议。
它定义了数据传输的格式、规范和流程,以确保数据的正确性和可靠性。
DSP通讯协议根据通信方式的不同可以分为串行通信和并行通信两种方式。
1.1 串行通信串行通信将数据位依次以一位一位的方式进行传输。
串行通信一般使用单一的信道来传输数据,可以通过串行接口、串行总线等多种方式实现。
串行通信方式相对于并行通信方式占用的引脚数目较少,通信速度相对较低,但它具有传输距离长、布线简单等优点。
常见的串行通信协议有SPI(串行外围接口)、I2C(串行总线接口)和UART(通用异步收发传输器)等。
1.2 并行通信并行通信将数据位同时以多位的方式进行传输。
并行通信一般使用多个并行的信道来同时传输数据,可以通过并行总线等方式实现。
并行通信方式相对于串行通信方式占用的引脚数目较多,通信速度相对较高,但它对布线要求较高,传输距离较短。
常见的并行通信协议有PCI(外设互联设备接口)、VME(维基媒体引擎)和ISA(个人计算机总线接口)等。
2. 常见的DSP通讯协议2.1 SPI(串行外围接口)SPI是一种全双工、同步、串行通信协议。
它使用一根时钟线和两根数据线(Master Out Slave In - MOSI和Master In Slave Out - MISO)进行数据的传输。
SPI协议中,一个主设备控制多个从设备,可以同时实现多个设备之间的通信。
SPI协议具有传输速度快、连接简单、灵活可靠等特点,广泛应用于各种数字设备之间的通信。
2.2 I2C(串行总线接口)I2C是一种双向、两线制的串行通信协议。
1 绪论1.1 设计背景在DSP芯片出现之前,数字信号处理只能依靠通用微处理器来完成,由于微处理器芯片速度较低,难以满足高速实时处理的要求。
1965年库利和图基发表了著名的快速傅立叶变换FFT,极大地降低了傅立叶变换的计算量,从而为数字信号的实时处理奠定了算法的基础。
与此同时,伴随集成电路技术的发展,各大集成电路厂商为生产通用DSP芯片做了大量的工作。
1978年AMI公司生产第一片DSP芯片S2811。
1979年美国Intel公司发布了商用可编程DSP器件Intel2920,由于内部没有单周期的硬件乘法器,使芯片的运算速度,数据处理能力和运算精度受到了很大的限制。
运算速度大哟为单指令周期200~250ns,应用范围仅局限于军事或航空领域。
随着时间的推移,许多国际上著名集成电路厂家都相继推出自己的DSP产品。
这个时期的DSP器件在硬件结构上更适合数字信号处理的要求,能进行硬件乘法,硬件FFT变换和单指令滤波处理,其单指令周期为80~100ns,20实际80年代后期,以TI公司的TMS320C30为代表的第三代DSP芯片问世,伴随着运算速度的进一步提高,其应用范围逐步扩大到通信,计算机领域。
在2000年以后,DSP制造商不仅信号处理能力更加完善,而且是系统开发更加方便,程序编辑更加灵活,功耗进一步降低,成本不断下降。
尤其是各种通用外设集成到片上,大大地提高了数字信号处理能力。
这一时期的DSP运算速度可达到单指令周期10ms左右,可在Windows环境下直接应用C语言编程,使用方便灵活,使DSP芯片不仅在通信,计算机领域得到了广泛的应用,而且逐步渗透到了人们的日常消费领域。
目前DSP芯片的发展非常迅速。
硬件结构方面主要是向多处理器的并行处理结构,便于外部数据交换的串行总线传输,大容量片上RAM和ROM,程序加密,增加IO驱动能力,外围电路内装化,低功耗等方面发展。
软件方面主要是综合平台的完善,使DSP的应用开发更加灵活方便。
利用ISA总线实现对DSP芯片VC5402的软配置摘要以机作为主机,通过的总线与的主机并口连接作为传输通道,实现对机插卡上的芯片3205402进行实时在线程序装载。
关键词主机并口总线软配置一、引言目前,随着微电子技术的飞速发展,在基于工业测控和数据采集领域的机板卡产品中,高速芯片的使用已经是越来越普及。
众多厂家生产的芯片中以美国公司德州仪器生产的芯片的应用最为普遍。
同传统的诸如单片机的程序装载过程相比,厂家为芯片提供了更多、更灵活的程序装载方法。
电子工程师在设计系统中究竟采用那种程序装载方法,应视产品类型的不同而有所选择。
当前许多厂家所生产的芯片中都集成了主机并行接口,利用主机并口可以完成主机和之间的并行数据交换。
例如公司的32054系列的芯片、公司21系列的芯片等。
而主机并口在完成主机与进行数据交换的同时,还大都具有程序装载的功能。
在板卡类电子产品上使用芯片时,实际上是一种主从模式的应用,即把机作为主机,芯片作为从机。
这时采用主机并口通过机的系统总线来完成程序的装载就成了一种既经济实用又灵活方便的方式。
下面以公司的3205402为例以下简称为5402,本文介绍了如何由的总线来完成程序的主机并行接口装载,并给出了软硬件开发的实例。
二、硬件设计1.5402的程序装载过程5402内部具有4×16位字的,当系统上电复位后,如果5402的引脚为低,那么5402的程序指针跳到地址为080的处开始执行复位向量段的程序。
该段程序是厂家在出厂时就固化好的一段程序,它首先执行跳转指令,跳到地址为0800处开始执行,从0800开始的的内容被称为程序装载器。
在那里将要判断用户究竟采用了那种程序装载方式,而判断的依据是通过诸如中断的有无、数据或空间固定地址单元内特定的标志字的有无等厂家已经定义好的方式来识别的。
值得注意的是,5402的装载方式与54系列的其它型号稍有不同。
其不同有以下两点⑴5402的装载过程是在复位过程以后完成的,不是在复位过程中完成的。
基于ISA总线的通用多DSP目标系统随着大规模水平的进展,以数字信号处理器(Digital Signal Process,)为基础的实时数字信号处理技术正在快速进展,现已广泛应用于图像处理技术、语声处理、智能化仪表、生物医学与工程、通信、自动控制等领域。
由Analog Device公司生产的ADSP是应用十分广泛的一类DSP,其典型产品有定点的ADSP2181和浮点的ADSP21060。
在许多实际系统中,需要采纳多片DSP级联的方式举行处理。
因此,ADSP2181常常经级联后用在实际系统中,我们设计了基于ISA的通用多DSP目标系统,这种系统可以用于早期研发及各种算法的硬件平台,他对缩短实际系统开发周期、项目预研等都有重要意义和应用价值。
2 通用多DSP 目标系统的构成通用多DSP 目标系统的构成由6片ADSP2181、2片A/D变换器以及实现规律功能的组成,其原理框图1所示。
(1)处理系统囫囵处理系统由6片DSP构成,他完成对2路模拟信号的采集和数据处理。
本系统采纳的是Analog Device公司较为典型的定点DSP系列ADSP2181,相邻2片DSP之间的串口数据的发送与接收、帧同步信号的发送与接收分离对应相连,数据的传输采纳自动缓冲的方式。
(2)系统输入系统输入的模拟信号由2路精度为12b的串行A/D变换器完成,采样率最高达400kS/s,输入模拟量为单极性(0~2.5V)信号。
模拟信号经A/D变换器后以串行方式送入第1片DSP。
(3)时序控制系统时序控制由FPGA(Field Programmable Gate Array,现场可编程门阵列)实现,系统采纳公司的FPGA芯片EPFl0K10,其实现的主要功能有:①产生ISA总线对各片DSP拜访的地址译码与控制;第1页共3页。
基于ISA总线的通用多DSP目标系统
庞雄昌;楼顺天
【期刊名称】《现代电子技术》
【年(卷),期】2003(026)018
【摘要】基于ISA总线的通用多DSP(数字信号处理器)目标系统,采用6片定点ADSP2181实现对2 路采集数据的处理,目标系统板的地址可从2E8H~366H中选择.DSP与ISA总线和A/D转换器之间的时序控制由FPGA完成,编写的下载软件完成DSP程序和数据的加载.目标系统具有编程简单、操作方便、使用灵活的特点.
【总页数】3页(P54-55,69)
【作者】庞雄昌;楼顺天
【作者单位】西安电子科技大学,电子工程学院,陕西,西安,710071;西安电子科技大学,电子工程学院,陕西,西安,710071
【正文语种】中文
【中图分类】TP336
【相关文献】
1.基于芯片CH375的USB总线和ISA总线转接的实现 [J], 蒋俊华;侯卫周
2.基于PCI总线的通用多DSP目标系统 [J], 杜显利;陈生潭;楼顺天
3.基于CPCI总线的多DSP共享总线系统的设计与实现 [J], 程刚;李明
4.基于VPX总线多DSP架构的高性能通用信号处理模块设计 [J], 张倩;张飚;高广坦;
5.基于FPDP和VME总线的多DSP通用并行处理系统设计 [J], 陈栋;侯朝焕;杨常安;张立军;钟声
因版权原因,仅展示原文概要,查看原文内容请购买。
基于Lab Windows/CVI的PC与 DSP的串行通信摘要:实现了一种全集成可变带宽中频宽带低通滤波器,讨论分析了跨导放大器-电容(OTA—C)连续时间型滤波器的结构、设计和具体实现,使用外部可编程电路对所设计滤波器带宽进行控制,并利用ADS软件进行电路设计和仿真验证。
仿真结果表明,该滤波器带宽的可调范围为1~26 MHz,阻带抑制率大于35 dB,带内波纹小于0.5 dB,采用1.8 V电源,TSMC 0.18μm CMOS工艺库仿真,功耗小于21 mW,频响曲线接近理想状态。
关键词:Butte0 引言随着数字信号处理理论及微电子技术的高速发展,数字信号处理器(DSP)已广泛应用于各个控制领域。
而在控制系统中,通常会利用PC机与DSP之间的通信来对系统各个状态/参数进行监控。
这种方法既利用了DSP功耗低、价格相对便宜、功能强大、抗干扰能力强、适宜于分布现场等优点,同时又结合了PC机的软硬件资源丰富、管理功能强大、人机界面友好、操控平台稳定可靠、数据通信方便快捷等系统功能优势。
为此,本文拟通过使用比较广泛的RS-232-C接口标准来研究PC与TMS320F2812 DSP之间的异步串行通信。
1 硬件设计这里采用最简单的三线连接方法,即PC机与DSP的发送、接收端彼此交叉连接,地线对应连接的方法。
另外,由于DSP的串行通信接口SCI的两个外部引脚SCITXD和SCIRXD的信号为TTL电平,与RS-232-C标准逻辑电平不一致,因此,要进行信号电平转换后才能连接到PC机的串口接头DB9,图1所示是其硬件连接电路,其中电平转换选用MAX3232芯片和若干电容来实现,使用时只用其中的一对收/发单元。
2 软件设计2.1 通信协议本设计将通信的帧格式设置为1个起始位,8个数据位,无奇偶校验位,1个停止位。
图2所示为其数据帧格式,其传输波特率为9600 bps,采用全双工通信方法。
PC机发送数据包的格式是:包头+功能码+参数码+数据内容+校验和,本设计分别设置它们占1、2、2、4、4个字节。
ISA总线到DSP-Link Ⅱ总线转换适配器的设计(二)——
Windows NT设备驱动程序的研制
何建新;许永利
【期刊名称】《计算机工程》
【年(卷),期】2002(028)005
【摘要】主要描述该总线转换适配器在Windows NT下设备驱动程序的编写方法.并以此为例深入讨论了Windows NT下DDK的开发方法
【总页数】3页(P203-205)
【作者】何建新;许永利
【作者单位】成都信息工程学院,成都,610041;北京敏视达雷达公司
【正文语种】中文
【中图分类】TP311.52
【相关文献】
1.用CPLD实现ISA总线与CAN总线的转换 [J], 徐松涛;杜春玲;张希
2.基于FPGA的ISA总线/MMИ总线数据转换电路设计 [J], 王朕;史贤俊
3.ISA总线到DSP-LinkⅡ总线转换适配器的设计(一) ——用可编程逻辑设计适配器硬件 [J], 何建新
4.PCI总线与ISA总线转换设计研究 [J], 侯金彪
5.高速动车组CPCI总线和ISA总线协议转换器的研发 [J], 朱孟祥; 盖猛; 刘真因版权原因,仅展示原文概要,查看原文内容请购买。
《国外电子元器件》2008年第9期1引言开放式数控系统从根本上突破了传统封闭式数控系统,是当今数控技术的主流和研究热点,更是新一代数控加工的关键技术。
基于开放式数控系统运动控制卡采用上下位机模式[1],DSP 作为数控系统运动控制卡的核心已广泛应用。
2系统的结构模型TMS320F2812DSP 处理器[2]是TI 公司的32位定点处理器,系统处理能力达150MI/S ,指令周期为6.67ns ,具有较高的实时控制功能。
图1为开放数控系统的结构模型。
包含DSP 插补板、位置反馈、开关量I/O 控制及辅助功能控制、故障检测设计、驱动单元和PC 机等模块。
基于开放数控系统的结构模型设计了运动控制卡,并针对不同控制对象编写控制程序,可实现多种电机四轴联动,从而加工形状不规则零件。
该运动控制卡通过ISA 总线与上位机进行通信,通过驱动电路控制电机运动。
上位机负责加工点的预处理、解释编译,将粗插补的指令通过ISA 总线经双口RAM 传给下位机DSP ;DSP 处理与上位机的通信、精插补以及控制输出,控制电机运动,并返回当前加工状态;FPGA 进行逻辑控制。
这里重点论述PC 机与DSP 的通信实现。
通常,DSP 与PC 机对双口RAM 的访问,即CPU 和外设之间的数据传输方式[3]主要有:查询方式、中断方式、DMA 传送方式。
在查询方式下,CPU 需要不断读取状态字和检测状态字,如果状态字表明外设没准备好,则CPU 须等待,这样就降低了CPU 工作速度,达不到实时性要求。
采用DMA 方法实现双机通信适合通信数据量大的场合,其缺点是双机不能同时访问存储器,在某一时刻只能作为某一个处理器的存储器。
由于本系统设计是实时的,通信量不是很大,因此,适宜采用中断方式。
分配给双口RAM 每侧一个存储单元,该单元称为邮箱或信息中心。
当DSP 系统向右侧地址为1FFEH 的存储单元执行一次写操作,左侧的中断标志信号INTL 有效;当主机响收稿日期:2008-07-17稿件编号:200807039课题来源:陕西省教育厅项目(04jk195)作者简介:熊森(1982-),男,湖北黄冈人,硕士研究生。
研究方向:计算机数控技术。
基于ISA 总线的计算机与DSP 的通信熊森,尚雅层,来跃深(西安工业大学机电工程学院,陕西西安710032)摘要:在开放式数控系统结构模型的基础上,研究了基于ISA 总线的DSP 通信控制原理。
采用中断方式完成了PC 机和DSP 之间的通信。
介绍了以DriverWorks 为工具开发ISA 设备WDM 驱动程序的方法,探讨了中断处理、驱动程序与应用程序之间的通信,简要说明了驱动程序的安装与调试。
通过调试,系统设计运行稳定。
关键词:数控系统;计算机/通信;数字信号处理器;TMS320F2812中图分类号:TN602文献标识码:A文章编号:1006-6977(2008)09-0016-03Communication between computer and DSP based on ISA busXIONG Sen,SHANG Ya-ceng,LAI Yue-shen(Department of Mechanical Engineering Xi ’an Technological University,Xi ’an 710032,China )Abstract:The ISA bus and DSP correspondence control principle is investigated in the basis of the existing open architecture numerical control system.The interrupt method is used to realize the communication between PC and DSP based on the ISA bus.The methods of WDM driver exploitation for ISA device using Driver Works are introduced.The main process of driver program and the keys such as handle interrupt and the communication between the drivers and application are presented.And how to debug and install the drive is explained.Key words:data controller system ;computer/communication ;digital signal processor ;TMS320F2812图1开放数控系统的结构模型网络与通信工程应中断后,向地址为1FFEH 的存储单元执行一次读操作,清除中断标志信号INTL 。
同样,当主机向左侧地址为1FFFH 的存储单元执行一次写操作,右侧的中断标志信号INTL 有效;当右侧响应中断后,向存储单元1FFFH 执行一次读操作,清除中断标志信号INTL 。
此时,1FFEH 和1FFFH 单元中的内容可以由用户定义,如果不使用中断功能,1FFEH 和1FFFH 单元不用作邮箱,仍作为普通的RAM 单元使用。
PC 和DSP 都只能读自己一侧的邮箱和写对方的邮箱。
图2是PC 机与DSP 通信流程图。
3WDM 设备驱动程序的开发3.1WDM 驱动程序Windows 是通过设备驱动程序实现与个人计算机通信[4]。
编写驱动程序的方法有多种,本系统设计采用WDM 驱动程序。
WDM 驱动程序模型中每个硬件设备至少有两个驱动程序,其中一个为功能驱动程序,即硬件设备驱动程序。
该驱动程序了解硬件工作的所有细节,负责I/O 初始化带来的中断事件,为用户提供一种适合的控制方式;另一个驱动程序为总线驱动程序,用于管理硬件与计算机的连接。
WDM 驱动程序采用分层的结构模型,如图3所示,图中左边是一个设备对象堆栈,设备对象是操作系统为帮助软件管理硬件而创建的数据结构。
处于堆栈最底层的设备对象为物理设备对象(简称PDO )。
设备对象堆栈中有一个功能设备对象(简称FDO )。
在FDO 的上面和下面可能还会有一些过滤器设备对象,简称FiDO 。
位于FDO 上面的过滤器设备对象称为上层过滤器,位于FDO下面的过滤器设备对象称为下层过滤器。
层次结构使I/O请求过程更加明了,影响到设备的每个操作都使用I/O 请求包。
通常,IRP 先被送到设备堆栈的最上层驱动程序,然后逐渐过滤到下面的驱动程序。
每一层驱动程序都可以决定如何处理IRP 。
有时驱动程序不做任何事,仅仅是向下层传递该IRP ;有时驱动程序直接处理完IRP ,不再向下传递;或者驱动程序既处理了IRP ,又把IRP 传递下去。
这取决于设备以及IRP 所携带的内容。
为了编写Windows 设备驱动程序,根据不同的数据流向来说明数据传递过程,如图4所示。
3.2WDM 驱动程序的开发环境该系统设计的WDM 驱动程序编程环境的建立,WDM 的创建、生成和安装都在Windows 2000操作系统下进行,所需的开发工具包括:Visual C++6.0,Windows 2000DDK ,Plat -form SDK 和NuMega DriverStudio 2.6,可依次安装这些开发工具。
3.3WDM 驱动程序的创建Driverstudio 安装完成后,Visual C++编程工具栏中自动添加一个菜单Driverstudio 。
此时打开DriverWorks\source 目录下的VdwLibs.dsw ,对其编译从而创建库文件。
选择DriverStudio 下的Driver Wizard 创建WDM 框架程序,在创建一个WDM 程序框架时,共有10个选择界面,按照所需要求,选择相对应的选项,创建成功,如图5所示。
图5中Qudong.cpp 为驱动类文件,QudongDevice.cpp 为驱动设备类文件,Qudong.inf 为驱动安装指导文件,Test_qudong.cpp 为测试用的控制台程序文件。
此时已经具备了一个驱动程序以及测试用的应用程序基本框架,可在VC 集成环境下修改有关程序或增加相关具体操作代码,然后就可以进行编译调试。
图2PC 机与DSP 通信的流程图图3WDM 设备对象和驱动程序的层次结构图4通信数据流程图图5WDM 驱动程序框架《国外电子元器件》2008年第9期创建WDM时,可同时选择创建Win32应用程序,这里可选择创建Win32Console和MFC应用程序,由于Win32 Console是基于DOS界面,所以选用MFC应用程序。
接下来就是解决应用程序与驱动程序之间的通信问题。
(1)应用程序对WDM的通信应用程序先调用WDM的CreatFile函数打开设备,然后用Device IO Control和WDM通信。
在应用程序中,若想打开中断,先通过ReadFile获取中断使能寄存器的值,若该值为0,则通过WriteFile往该寄存器写入1打开中断。
若想关闭中断,先ReadFile获取中断使能寄存器的值,若该值为1,则通过WriteFile往该寄存器写入0关闭中断。
应用程序中的Read-File和WriteFile不能直接访问设备,而是通过驱动程序的read和write例程访问设备。
当应用程序退出时,采用Close-Handle关闭设备。
(2)驱动程序与应用程序的通信WDM采用Device IO Control异步完成与应用程序的通信以及Win32事件通知、创建命名事件。
系统设计采用Win32事件通知方式,当WDM捕捉到特定事件(中断)时,则可与应用程序通信。
此时应用程序的编程涉及到多线程编程问题,可采用主线程用于发送数据,次线程始终处于等待状态等待WDM唤醒的方式解决。
当WDM捕捉到特定事件时,给处于等待的这一线程发送消息,将其唤醒,同时主线程处理相应工作。
3.4WDM驱动程序的安装与调试在安装WDM驱动程序前,应修改上叙所生成的*.inf 文件,然后将其拷贝到“..\sys\objchk\i386”目录下,运行“控制面板”中“添加/删除硬件”,找到WDM范例按其向导逐步安装即可。
采用SoftICE和DriverMonitor作为调试工具,基本调试过程如下:首先使用Symbol-Loader加载驱动程序,然后使用SoftICE跟踪调试,确认驱动程序正常加载。
对核心的中断响应程序代码,用SoftICE中的Genint命令产生虚拟中断,硬件发送大量数据,通过查看内存数据,确认传输是否正确。