时间:2023-03-22 17:45:14
序论:速发表网结合其深厚的文秘经验,特别为您筛选了11篇接口技术论文范文。如果您需要更多原创资料,欢迎随时与我们的客服老师联系,希望您能从中汲取灵感和知识!
引言
在IBM公司推出PC机时,并行端口已经是PC机的一部分。并口设计之初,是为能代替速度较慢的串行端口驱动当时的高性能点阵式打印机。并口可以同时传输8位数据,而串口只能一位一位地传输,传输速度慢。随着技术的进步和对传输速度要求的提高,最初的标准并行端口即SPP模式的并行端口的速度已不能满足要求。1994年3月,IEEE1284委员会颁布了IEEE1284标准.IEEE1284标准提供的在主机和外设之间的并口传输速度,相对于最初的并行端口快了50~100倍。IEEE1284标准定义了5种数据传输模式,分别是兼容模式、半字节模式、字节模式、EPP模式和ECP模式。其中EPP模式、ECP模式为双向传输模式。EPP模式比ECP模式更简洁、灵活、可靠,在工业界得到了更多的实际应用。本文介绍的一种基于uPSD323X的EPP增强并口的设计核心是,使用uPSD323X内部的CPLD实现EPP接口。
1EPP接口协议介绍
EPP(EnhancedParallelPort,增强并行端口)协议最初是由Intel、Xirocm、Zenith三家公司联合提出的,于1994年在IEEE1284标准中。EPP协议有两个标准:EPP1.7和EPP1.9。EPP接口控制信号由硬件自动产品,整个数据传输可以在一个ISAI/O周期完成,通信速率能达到500KB/s~2MB/s。
EPP引脚定义如表1所列。
表1EPP接口引脚定义
对应并口引脚EPP信号方向说明
1nWrit输出指示主机是向外设写(低电平)还是从外设读(高电平)
2~9Data0~7输入/输出双向数据总线
10Interrupt输入下降沿向主机申请中断
11nWait输入低电平表示外设准备好传输数据,高电平表示数据传输完成
12Spare输入空余线
13Spare输入空余线
14nDStrb输出数据选通信号,低电平有效
15Spare输入空余线
16Ninit输出初始化信号,低电平有效
17nAStrb输出地址数据选通信号,低电平有效
18~25GroundGND地线
1.1EPP接口时序
EPP协议定义了4种并口周期:数据写周期、数据读周期、地址写周期和地址读周期。数据周期用于计算机与外设间传送数据;地址周期用于传送地址、通道、命令、控制和状态等辅助信息。图1是EPP数据写的时序图。图1中,nIOW信号实际上在进行EPP数据写时并不会产生,只不过是表示所有的操作都发生在一个I/O周期内。在t1时刻,计算机检测nWait信号,如果nWait为低,表明外设已经准备好,可以启动一个EPP周期了。在t2时刻,计算机把nWrite信号置为低,表明是写周期,同时驱动数据线。在t3时刻,计算机把nDataStrobe信号置为低电平,表明是数据周期。当外设在检测到nDataStrobe为低后读取数据并做相应的数据处理,且在t4时刻把nWait置为高,表明已经读取数据,计算机可以结束该EPP周期。在t5和t6时刻,计算机把nDataStrobe和nWrite置为高。这样,一个完整的EPP数据写周期就完成了。如果就图1中的nDataStrobe信号换为nAddStrobe信号,就是EPP地址写周期。
图2是EPP地址读周期。与EPP写周期类似,不同的是nWtrite信号置为高,表明是读周期,并且数据线由外设驱动。
从EPP读、写周期可以看出,EPP模式的数据传输过程是一个信号互锁的过程。以EPP写周期为例子,当检测到nWait为低后,nDataStrobe控制信号就会变低,nWait状态信号会由于nDataStrobe控制信号的变低为而高。当计算机检测到
nWait状态信号变高后,nDataStrobe控制信号就会变高,一个完整的EPP写周期结束。因此,EPP数据的传输以接口最慢的设备来进行,可以是主机,也可以是外设。
1.2EPP增强并口的定义
EPP增强并口模式使用与标准并口(SPP,StandardParalledPort)模式相同的基地址,定义了8个I/O地址。基地址+0是SPP数据口,基地址+1是SPP状态口,基地址+2是SPP控制口。这3个口实际上就是SPP模式下的数据、状态和控制口,保证了EPP模式和SPP模式的软硬件兼容性。
基地址+3是EPP地址口。这个I/O口中写数据将产生一个连锁的EPP地址写周期,从这个I/O口中读数据将产生一个连锁的EPP地址读周期。在不同的EPP应用系统中,EPP地址口可以根据实际需要设计为设备选择、通道选择、控制寄存器、状态信息等。给EPP应用系统提供了极大的灵活性。
基地址+4是EPP数据口。向这个I/O口中写数据将产生一个连锁的EPP数据写周期,从这个I/O口读数据将产生一个连锁的EPP数据写周期。基地址+5~+7与基地址+4一起提供对EPP数据口的双字操作能力。EPP允许主机在此个时钟周期内写1个32位双字,EPP电路再把32位双字拆为个字节依次从EPP数据口中送出去。也可以用其所长6位字方式进行数据传送。
由于EPP通过硬件自动握手,对EPP地址口和EPP数据口的读写操作都自动产生控制信号而无需软件生成。
2uPSD323X及其开发环境PSDsoftEXPRESS
ST公司的uPSD323X是带8032内核的Flash可编程系统器件,将于8032MCU、地址锁存器、Flash、SRAM、PLD等集成在一个芯片内。其主要特点如下:具有在线编程能力和超强的保密功能;2片Flash保存器,1片是128K或者256K的主Flash存储器,另一片是32K的从Flash存储器;片内8K的SDRAM;可编程的地址解码电路(DPLD),使存储器地址可以映射到8032寻址范围内的任何空间;带有16位宏单元的3000门可编程逻辑电路(CPLD),可以实现EPP接口等及一些不太复杂的接口和控制功能;2个异步串口、I2C接口、USB接口、5通道脉冲宽度调节器、50个I/O引脚等。由于uPSD323X采用的是8032内核,因此可以完全得到KeilC51编程器的PSDsoftEXPRESS是ST公司针对PSD系列产品(包括uPSD)开发的基于Windows平台的一套软件开发环境。经过不断升级,目前最新版是PSDsoftEXPRESS7.9。它提供非常容易的点击设计窗口环境用户不需要自己编程,也不需要了解HDL语言,只有点击鼠标即可完成对地址锁存器、Flash、可编程逻辑电路等外设的所有配置和写入。它支持所有PSD器件的开发,使用PSDsoftEXPRESS工具对uPSD323X系列器件的可编程逻辑电路的操作简单、直观。PSDsoftEXPRESS工具可以在ST网站(/psd)免费下载。
3用uPSD323X实现EPP接口设计
3.1硬件接口
EPP增强并口的速度最高可达到500KB/s~2MB/s,这对外设的接口设计提供了一个很高的要求,如果外设响应太慢,系统的整体性能将大大下降。用户可编程逻辑器件,系统的整体性能将大大降低。用户可编程逻辑器件,如FPGA(FieldProgrammableGatesArray,现场可编程门阵列)和CPLD(ComplexProgrammableLogicDevice,复杂可编程逻辑器件),可以实现EPP增强并口的接口设计,这种实现方案可以达到并口中的速度极限,并且保密性好。ST公司的uPSD323X内部集成了可编程逻辑电路(CPLD),因此使用uPSD323X可以很好地实现EPP增强并口的接口设计。
EPP接口(EPP1.7)外设硬件接口原理如图3所示。在本设计中,uPSD323X通过中断的方式接收PC机并口的数据,并且当外设准备好数据上传到PC机时,PC机采用的也是中断方式接收外设的数据。
在上述硬件电路的基于上实现EPP并口通信还需做两部分的工作:一部分工作是在PSDsoftEXPRESS工具中完成对CPLD的数据的锁存;另一部分工作是在KEILC51环境下编写中断服务程序,实现EPP数据的读取和发送。
图3
3.2对CPLD的编程及其实现数据锁存的过程
在PSDsoftEXPRESS工具中,将PA端口(EPPD0~EPPD7)配置成带有时钟上升沿触发的寄存器类型(PTclockedregister)的输入宏,PB0(nWait)配置成上升沿触发的D类型寄存器(D-typeregister)的输出宏,PB3(nWrite)、PB4(nDstrb)、PB2(nAstrb)配置成CPLD逻辑输入(logicinput)口。NDstrb信号和nAstrb信号各自取反再相与后的值作为输入宏单元和输出宏单元的时钟。上述对PA、PB端口的配置用方程式表示如下:
PORTAEQUATIONS:
=======================
!EPPD7_LD_0=nAstrb&nDstrb;
EPPD0.LD=EPPD3_LD_0.FB;
!EPPD3_LD_0=nAstrb&nDstrb;
EPPD1.LD=EPPD3_LD_0.FB;
!nWait_C_0=nAstrb&nDstrb;
EPPD2.LD=EPPD3_LD_0.FB;
EPPD3.LD=EPPD3_LD_0.FB;
EPPD4.LD=FPPD7_LD_0.FB;
EPPD5.LD=EPPD7_LD_0.FB;
EPPD6.LD=EPPD7_LD_0.FB;
EPPD7.LD=EPPD7_LD_0.FB;
PORTBEQUATIONS:
=======================
nWait.D:=1;
nWait.PR=0;
nWait.C=nWait_C_0.FB;
nWait.OE=1;
nDstrb.LE=1;
nAstrb.LE=1;
EPP数据的锁存过程如下:以计算机向外设传输数据(即EPP数据写周期)为例子,计算机首先检测nWait信号,如果nWait为低计算机把nWrite信号置为低,表明是写周期,同时将数据放到数据总线上,然后置低nDstrb信号。此时,nDstrb信号会出现一个上升沿,此上升沿会将PA端口的数据锁存到输入宏;同时,此上升沿使nWait信号变高,表示外设正忙阻计算机发数年。当计算机检测到nWait信号为高后就会将数据握手信号nDstrb变高,EPP数据写周期结束。上述EPP数据的锁存和nWait握手信号的产生都由硬件产生,因此数据传输速度快。整个数据传输过程可以在一个I/O周期内完成,锁存到输入宏的数据的读取和nWait信号的清除则在外部中断0服务程序软件完成。
3.3中断服务程序的功能描述及流程
由硬件原理图可以看出,EPP并口的nDstrb和nAstrb信号线分别连到uPSD323X的外部中断定和外部中断1引脚。当发生EPP数据读写时,nDstrb信号就会产生一个下降沿,引起外中断定中断。当发生EPP地址读写时,nAstrb信号就会产生一个下降沿,引起外中断1中断。外部中断0和外部中断1的中断服务程序的功能是相同的,只不过前者接收或发送的是数据而后者是地址、命令等。以外部中断0的中断服务程序为例,详细介绍数据正向传输(计算机向外设发送数据)和反向传输(外设向计算机传送数据)时中断服务程序的功能。外部中断0中断服务程序流程如图4所示。
(1)数据正向传输
当发生EPP数据写周期时,即数据正向传输时,计算机首先检测nWait信号。如果nWait为低,表示外设已准备好接收数据。计算机把nWrite信号置为低,表明是写周期,同时将数据放到数据总线上,然后置低nDstrb。NDstrb信号就会产生一个下降沿,此下降沿一方面将PA端口的数据锁存到输入宏并使nWait信号变高,表示外设正忙另一方面引起外部中断0中断,在外部中断0的中断服务程序中读取输入宏锁存的数据,然后将nWait信号清零通知计算机现在外设已经准备好可以再次接收数据了。
(2)数据反向传输
机电接口主要就是机电一体化产品中机械装置与控制微机之间的接口,其是基于机电一体化而产生的。机电接口根据信息传输方向的不同,可以分为信息采集接口、输出接口[1]。在机电一体化产品中,传感器是一种较为常用的设备,在输出信号的时候,一般采用模拟量方式进行检测,时刻掌握发电机转速,并且检测差动变压器位置。然而,在输出控制量的时候,存在一个比较特殊的形式,就是数字系统。机电接口技术主要就是研究机电系统各项组成技术与子系统连接问题的综合技术,其主要包括电子技术、信息技术、机械技术等,共同构成了一个综合系统,在实际应用中,实现了信息的交互与融合,在机电系统设计中发挥了至关重要的作用。机电接口主要是由硬件与软件共同构成,在机电系统运行中,与环境及操作者之间成立一种有效连接,在物理通道中展开信息与能量的输入、转换及传输。在信息转换的过程中,需要进行有效的交互与调整,实现机电一体化技术的协调与综合,保证各系统的有效运行,充分发挥系统功能,实现预期的工作目标。
(二)分类
目前,机电接口主要包括以下几种:智能接口、动力接口、机电接口、人机接口[2]。智能接口应用较为复杂,不同技术形式产生的信息形式也不同,并且在使用过程中,可以根据不同要求展开相应的改变。在各种信息转换与传输的过程中,智能接口可以确保不同技术与子系统的有机结合,构成一个完整系统。动力接口可以有效连接动力源与机电系统,之后给予机电系统相应的驱动动力。在机电系统中,动力类型有很多种,主要包括直流电、交流电、液压等,在系统中运用不同动力类型的时候,需要选用不同的接口形式,确保系统可以正常运行。机电接口的作用就是实现各种驱动系统的有效连接,并且将驱动信号转变成执行信号,在转变的过程中满足传感器运行要求。人机接口是机电系统与操作者之间存在的接口,通过这一接口,可以在操作者眼前呈现系统运行状态,并且有效监控系统运行,实现人性化操作目标。
二、机电一体化发展及其发展趋势
(一)机电接口技术对机电一体化发展的影响
近些年来,随着社会经济的快速发展,人们生活水平的不断提高,对一些事物的要求也在明显提高。经济的快速发展离不开科学技术水平的提高,传统机械技术已经无法满足现代人们日益增长的技术需求,需要对其进行改进与完善。从而在此形势下,机电一体化技术应运而生,其主要包括电子技术、信息技术、机械技术等,充分满足了现代社会发展的技术要求。在机电一体化技术初始发展中,只是将电子技术与机械技术进行融合,接口十分简单、便捷[3]。然而,随着科学技术的不断发展与进步,机电一体化技术水平也在不断提升。目前,机电一体化技术不再是简单的机电一体化产品,逐渐形成了一个复杂的系统,其系统内部接口也日益复杂。现阶段,机电一体化技术研究越来越深入、成熟,然而,简单的技术研究已经无法满足系统的运行需求,需要充分重视其复杂性研究。针对机电一体化技术而言,其复杂性较强,如果只是单纯研究系统设计及其集成理论,根本无法充分实现系统的作用,为此,需要加深对机电接口技术的研究,在设计方面,加强对有关理论的融合,确保机电一体化系统的全面实施。在机电一体化技术发展过程中,越来越向智能化、系统化、微型化、网络化方向发展,其系统内部接口要求越来越高,不仅要确保接口技术与系统技术的有效融合,还要确保信息传输的顺畅。
(二)机电一体化发展历程及趋势
数据采集系统中,通过微机COM端口的RS-232串行通讯及通过微机并行端口的并行通讯具有开发使用方便的特点,前者可与工作于11.0592MHz晶振下的8052单片机在波特率115200时,实现10ksps(samplespersecond)的连续数据采集和传输而不丢失数据,若要达到更高速率的数据采集,可以通过并行口通讯方式实现。当前微机均可通过配置CMOS,将基地址为378H的并行口设置为EPP模式以支持通过数据口双向传输通讯,并由芯片硬件自动产生握手信号,实现高速传输的目的。
为充分实现EPP模式的高速特性,外设应当及时响应EPP的握手信号,当数据采集系统工作于非实时多任务的WIN98操作系统环境下,为实现数据高速、均匀性采样,还需要在外设配置必要的数据缓冲存储器。如果数据采集速率低于EPP模式数据读入平均速率,就可能实现数据的连贯有效性。有资料[1]说明在EPP模式,可实现500kBytes/s以上的传输速率,这表明通过EPP模式,可以实现500ksps的数据采集系统。通过对EPP模式的深入实验分析,发现要实现500ksps,外设硬件及微机软件程序均要采取一些策略:硬件上必须配置FIFO数据缓冲存储器,才能协调数据采集严格的时间间隔要求与数据传输给微机的非实时、非均匀性之间的矛盾;软件程序方面应当采取双字读的方法,否则EPP模式下仅能实现250kBytes/s数据读取可行性。
1EPP模式读取速率的实验分析
图1为实验EPP模式读取速率的电路,实验程序为
Delphi结合内嵌汇编语言,涉及EPP读取的关键代码如下:
FUNCTIONREADDATA:BYTE;
VAR
STARTTIME,STOPTIME,DELAY:INT64;
NUMBER:LONGWORD;
QUERYPERFORMANCECOUNTER(STARTTIME);
FORNUMBER:=0TO999999DO
BEGIN
ASM
MOVDX,$37C
INAL,DX
MOVRESULT,AL
END;
END;
QUERYPERFORMANCECOUNTER(STOPTIME);
DELAY:=STOPTTIME-STARTTIME;
END;
此为循环1000000次读取EPP数据口程序,循环仅为方便用计时及示波器观察而设,并在执行前后分别读取系统计数值,DELAY值除以1.2后为执行花费的时间(单位为微秒),执行前先通过对地址379H的D0位写入高,使该位为低(注意:对该位写入低通常不能达到使该位变为低的目的,只有采取写入高才能使该位变为低),以清除EPP超时位,当A、B点均为低时,可实现最快的EPP握手,若A为高、B为低时,由于EPP周期开始时满足WAIT为低的要求,EPP自动在DATASTB处输出低,但因WAIT没有出现表示应答的高状态,EPP在延时10μs后,将DATASTB恢复为高以结束该次EPP访问过程,并置超时位。稍后因WAIT为低再次开始一次EPP访问过程,如果B为高,则WAIT为高,不能满足EPP的开始条件,故DATASTB保持为高,EPP在延时10μs后结束该次EPP访问过程,并置超时位。在发生超时情况下,数据仍然可正确读入
(这一特性与笔者所查资料[1]有出入),此结论可通过对比循环前后时间差来及实际读入数据值证实。
注意程序循环中并未执行清除EPP超时位的指令,根据笔者实验,即使已发生EPP访问超时,也不影响下一次的EPP读周期(包括对37BH的地址读及对37CH的数据读),但超时对EPP写周期有影响,在清除超时位之前,EPP写周期无效(因本文不涉及EPP写周期的内容,此处不再展开探讨)。在图2所示意波形中,当有正确握手的EPP读周期执行时间约为1.5μs,此时间是字节模式下一次有效EPP访问所需最短时间,在这段时间内,“INAL,DX”这一条指令占据了约90%以上的访问时间,验证此点仅需临时屏蔽“INAL,DX”指令,并比较所花费的时间差别即可。1.5μs相当于接近700kBytes/s的数据读速率。如果以“INEAX,DX”替代“INAL,DX”指令,可以充分利用EPP模式下硬件将4个8位数自动合并为1个32位数的特性,在一次I/O访问中由硬件自动产生4个DATASTB负脉冲从而实现4个字节的输入。因为一次字节模式的I/O访问所费时大约间需要1.5μs,减少这类指令的执行次数有利于实现更高速的EPP访问过程,经实验发现以4字节方式访问的EPP过程可以在3.2μs内读取一次,即平均每字节需0.8μs,相当于1.2MBytes/s,此实验结果是基于外设可以连续不断的输送数据理想前提,实际上要实现有效的数据传输,可得到的速率要低于该值。
2WIN98下高速EPP接口的构成
在WIN98环境下,由于非实时多任务的特性,运行于RING3的应用程序频繁作系统打断,这决定了靠软件无法实现连续均匀的数据采样,只有在硬件上配置数据缓冲存储器并及时传入微机以免数据缓冲存储器溢出。只要保证一定深度的数据缓冲存储器,且满足数据传输平均速率大于数据采样速率,就能将所采集的数据传入微机的大容量内存,以备处理。在硬件构成方面,为以较低代价获得大容量的FIFO数据缓冲存储器,采取CPLD器件结合512KB的SRAM方式,实现,由CPLD器件完成读写控制的FIFO特性及EPP模式的应答握手信号。接口结构及CPLD内部功能模块见图3所示,数据在CPLD控制下,以2μs的固定速率存入SRAM环状连续增量地址,因为EPP模式读取速率与数据采样的固定速率是异步的,控制逻辑为保证2μs的固定采样速率,当采样时间点到达时,不论当前是否处于EPP应答处理期间,优先执行数据采样,因为处理是在系统时钟脉冲驱动下的硬件行为,仅存在固定的传输延时,故两次采样间隔是严格保证的。
EPP模式的读取平均速率必须高于数据采样速率,一旦FIFO数据读空必须让微机正确处理,由前述实验可知,每次字节方式I/O执行时间约为1.5μs,如果通过在EPP的状态口(379H)的保留位输入代表FIFO读空的信号,则每完整读取均要执行两次I/O指令:EPP数据读及EPP状态读,至少需3μs完成读取一个字节,这也是通常方式能达到的最快有效读取速率。当采用双字读读及EPP状态读的方式时,需4.8μs完成4个数据字节读取,但此方式需要处理的一个问题:由于双字方式EPP数据读由硬件自动产生4个EPP数据读周期,当其执行完毕,执行EPP状态读发现FIFO已空,微机软件无法判别在从第几个EPP数据读周期开始FIFO为空,从而影响对数据队列的正确排序,故CPLD逻辑应当在FIFO队列还有至少4个未读数据时必须发出读空信号,微机程序应当在每次EPP开始前执行读取状态口的指令,以决定是否可以开始EPP数据读周期,从上分析可以看出为实现有效的EPP数据读取,平均每字节至少需要1.2μs,即可
以获得最快约800kBytes/s的数据传输速率。因500ksps的数据采集设计速率仅略低于800kBytes/s的数据传输速率,考虑WIN98工作环境,配置大容量的FIFO十分必要,采用大容量SRAM与CPLD器件构成FIFO,具有成本较低的优点,通过使用VHDL的行为描述,经CPLD器件开发软件的编译、综合、仿真、适配、下载,实现所需要的控制逻辑。根据设计,当数据锁存输出的下一个时钟脉冲(即83ns后),WAIT将输出为高电平,EPP在此时读取数据口信号,如果不采用外部缓冲驱动器,数据上升过程将耗时80ns,对EPP数据接收可靠性有不容忽视的影响,为减小电缆电容的影响,数据输出使用了74ALS574芯片作缓冲,其高电平输出能力达15mA,是ispLSI1032高电平输出能力的3.5倍,在电缆电容有100pF时,23ns可达到3.5V的逻辑高电平,保证数据接收可靠性。
1USB协议和芯片选择
理解好USB协议是USB系统开发的第一步。USB协议版本包括1.0、1.1和2.0,USBOTG是对2.0版本协议的补充。虽然USB协议内容繁多且复杂,然而,对USB开发影响较大的却只是少数部分,以下对协议版本1.1[1]中这些部分进行介绍。
1.1USB协议
一般,每个USB设备由一个或多个配置(Configuration)控制其行为。使用多配置原因是对操作系统的支持;一个配置由接口(Interface)组成;接口则是由管道(Pipe)组成;管道与USB设备的端点(Endpoint)对应,一个端点可以配置为输入输出两个管道。在固件编程中,USB设备、配置、接口和管道都用描述符报告其属性。
图1为USB多层次通信模型。端点0默认配置为控制管道,用来完成所规定的设备请求(USB协议第九章)。其它端点可配置为数据管道。对开发而言,主要的大数据传输都是通过数据管道完成的[2]。
USB传输类型包括批量传输、等时传输、中断传输和控制传输,每种传输类型的传输速度、可靠性以及应用范围都不同[3]。控制传输可靠性是最高的,但速度最慢;等时传输速度快,满足实时性,但可靠性低。在具体应用中,端点传输类型可根据传输速度和可靠性选择。
在USB通信协议中,主机取得绝对主动权利,设备只能是“听命令行事”,通过一定的命令格式(设备请求)完成通信。USB设备请求包括标准请求、厂商请求和设备类请求。设备的枚举是标准请求命令完成的;厂商请求是用户定义的请求;设备类请求是特定的USB设备类发出的请求,例如海量储存类、打印机类和HID(人机接口)类。固件编程中设备请求必须遵循一定的格式,包括请求类型、设备请求、值、索引和长度。
1.2USB接口芯片选择
USB接口芯片的类型有:
(1)按传输速度的高低:低速(1.5Mbps)和全速(12Mbps)可选USB1.1接口芯片,例如Philips公司的PDIUSBD12和Cypress公司的EZ-USB2100系列;高速(480Mbps)可选USB2.0接口芯片,例如Philips公司的ISP1581和Cypress公司的CY7C68013。
(2)是否带MCU(微控制器):一般Philips公司的都不带MCU,Cypress公司大多都带,例如AN2131。
(3)是否带主控器功能:不需要主机参与,主从设备间可进行数据传输,芯片有Philips公司的ISP1301和Cypress公司的SL811HS等。
还有专门用途USB芯片,例如闪存专用芯片IC1114。工程中用户可根据自己的需求选择一款性价比高的芯片。另外可用开发资源也是要考虑的重要方面,例如开发板和芯片厂商提供的网上资源,可大大降低开发的难度。
2基于USB接口的数据采集系统的设计
2.1系统简介
该系统能够实现16路温度数据自动采集,系统的组成框图如图2所示。主要包括8个组成部分:中央处理器选用AT89C52芯片,完成各部分控制功能和USB传输协议;实时时钟记录当前测量温度的时间;温度传感器和接口电路主要完成温度采集,并读入MCU处理;复位电路完成对MCU的上电复位和电源电压监视;看门狗电路用来监视MCU是否工作;存储电路主要存储采集到的温度数据以及采集的实时时间;电源电路主要为各部分提供要求的电源;外设与主机间的通信电路采用USB接口。
2.2接口芯片选择
接口电路采用Philips公司的PDIUSBD12[4](以下简称为D12)芯片。主要因为D12芯片信息、开发资源丰富,具有较高的性价比。
D12芯片的主要特点包括:
·符合USB1.1版本规范;
·可与任何外部微控制器/微处理器实现高速并行接口(2MB/s);
·采用GoodLink技术的连接指示器,在通信时使LED闪烁;
·主端点的双缓冲配置增加了数据吞吐量并轻松实现实时数据传输;
·在批量和等时模式下均可实现1MB/s的数据传输率;
·完全自治的直接内存存取DMA操作。
2.3接口硬件设计
由D12接口组成的通信电路原理如图3所示。关于D12的各引脚说明见参考文献[4]。多路地址/数据总线ALE接单片机的ALE脚,这样使用MOVX指令可以与D12接口,对D12操作就象对RAM操作一样,此时忽略A0(命令口和数据口地址线)的输入。因为没有使用DMA传输方式,所以没有用到DMACK_N、EOT_N和DMREQ_NDMA引脚。INT_N是USB中断请求脚,发出USB中断请求;GL_N是GoodLink指示灯,在调试过程中非常有用,在通信时会不停闪烁。如果一直亮或者一直暗,表示USB接口有问题,如果D12挂起,则LED关闭。CLKOUT是D12的时钟输出,可以通过固件编程改变其频率,在调试固件时,可作为参考。
2.4接口程序设计
USB接口程序设计是USB开发的核心。USB接口程序设计包括三部分:单片机程序开发、USB设备驱动程序开发、主机应用程序开发。三者互相配合,才能完成可靠、快速的数据传输。
2.4.1单片机程序设计
单片机程序(又称固件)采用模块化程序设计,主要模块包括:数据采集模块、数据处理、监控模块和数据通信模块。模块化设计的优点是可靠性高、可读性好、升级简单。
通信模块固件结构如图4所示。主循环和中断服务程序之间的数据交换可通过事件标志和数据缓冲实现。图3中USB中断引脚INT_N发出中断请求,中断服务程序根据中断请求类型操作,设置事件和填充数据缓冲区再传输给主循环;标准设备请求程序是对标准请求进行处理;用户可以根据实际需要编写厂商请求,例如发出启动或停止数据采集命令。
图3USB接口连接示意图
2.4.2驱动程序设计
驱动开发工具有DDK和第三方开发工具。其中DDK开发难度最大,第三方开发工具有DriverStudio和Windriver等。DriverStudio难度适中,而Windriver则属于应用层驱动开发,难度小,但效率低,并存在问题。
DDK驱动程序开发工作包括:开发环境设置(VC编译环境)[5]、驱动程序设计[6]、安装文件(INF文件)设计。
驱动程序设计采用WDM(WindowsDriveMode)。WDM设备驱动程序提供了一个参考框架,大大降低了由DDK书写驱动程序带来的难度。
D12驱动使用的例程包括:DriverEntry、AddDevice、DispatchPnp、DispatchRead、DispatchWrite和DispatchDeviceControl例程,以下是D12的WDM驱动程序函数:
DriverObject->MajorFunction[IRP_MJ_CREATE]=D12_Create;
DriverObject->MajorFunction[IRP_MJ_CLOSE]=D12_Close;
DriverObject->DriverUnload=D12_Unload;
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL;
=D12_ProcessIOCTL;
DriverObject->MajorFunction[IRP_MJ_WRITE]=D12_Write;
DriverObject->MajorFunction[IRP_MJ_READ]=D12_Read;
DriverObject->MajorFunction[IRP_MJ_SYSTEM_CONTROL;
DriverObject->MajorFunction[IRP_MJ_PNP]=D12_Dispatch;
DriverObject->MajorFunction[IRP_MJ_POWER]=D12_Process-PowerIrp;
DriverObject->DriverExtension->AddDevice=D12_PnPAddDevice;
驱动程序与应用程序和硬件之间通信都是IRP(I/O请求包)完成的。IRP_MJ_PNP主要是实现USB即插即用,例如设备的添加、删除和资源的分配;IRP_MJ_POWER实现电源管理,例如设备的挂起和唤醒;IRP_MJ_CREATE(创建)、IRP_MJ_CLOSE(关闭)、IRP_MJ_
DEVICE_CONTROL(设备控制)、IRP_MJ_WRITE(读)和IRP_MJ_READ?穴写?雪是主要完成数据通信的函数,实现管道的创建、关闭和数据读写。其中设备控制具有输入输出缓冲区,可实现读和写功能;AddDevice和DriverUnload实现设备管理,在设备添加和卸载时,创建和删除设备,以及管理资源分配。
驱动程序通过安装文件(.inf文件)中PID(产品识别号)和VID(厂商识别号)识别USB设备。
2.4.3应用程序设计
主机应用程序的编写使用VC编译环境中的API函数实现。
应用程序的编程方法与串口编程类似。首先必须查找设备,打开设备的句柄;然后进行读写和控制操作;最后是关闭设备句柄。为了提高效率,可使用多线程技术实现读写。
应用程序通过GUID(注册表驱动唯一识别号)查找驱动程序。
2.5调试
首先是固件调试,可用仿真机完成,驱动开发工具Windriver也是很好的固件调试工具,例如测试标准请求、厂商请求和管道读写。其次是驱动调试,这是USB接口开发最困难的部分,调试工具可用DriverStudio中Softice工具和文献[6]中DebugPrint跟踪工具,监视工具BusHound可监视USB的实际数据传输情况。需要注意的是,驱动调试必须在应用程序正确调用的前提下。
2单边通信协议
根据虫孔(Wormhole)交换策略[5],一个数据包被划分为若干个微片(flit),其中位于数据包最前端和最尾端的微片分别被称为头微片(headflit,HF)和尾微片(tailflit,TF),中间部分的微片则被称为体微片(bodyflit,BF),这三种微片可进一步通过微片类型编码进行区分。数据包的头微片主要包含相关的路由信息,如源节点坐标(src_x和src_y)、目的节点坐标(dst_x和dst_y),以及数据包长度、冗余校验码等信息,尾微片和体微片则包含了具体待传输的数据。此外,在具有多个虚通道的片上网络中,微片中还包含了其所属的虚通道号(vcid),以使不同数据包的微片可以在数据链路上混合传输,从而提高数据链路的带宽利用率。为了减少处理器的干预、提高数据传输效率,本文对片上网络采用单边通信协议,其主要思想是在数据包中显式地包含数据的目的地址。图2示意了本文使用的数据包格式:一个数据包由至多16个微片组成,每个微片的数据负荷为32位;第一个微片为头微片,包含了路由信息及数据包长度信息;第二个微片包含了一个32位的目的地址,该地址指定了后续数据在目的节点中应被存放的位置;后续微片则包含了具体传输的数据。这种将目的地址包含在数据包中的单边通信方式使网络接口能直接将接收到的数据存入存储器,而无需处理器进行干预,因此有助于提升网络接口的数据接收能力。
3网络接口设计
网络接口(NI)负责数据包的发送和接收工作,是处理单元与片上网络通信的接口。一方面,NI监听从网络到达该节点的微片,组装成完整的数据包,然后通知DMA控制器根据接收到的目的地址将数据存放到存储器中;另一方面,NI从处理器接收数据,将数据进行打包后传入片上网络。因此,NI的处理器端和网络端需分别满足嵌入式总线协议(本文采用AHB总线[6])和基于信用量(credit)的流控协议。以具有两个虚通道(分别用VC0和VC1表示)的片上网络为例,图3示意了本文设计的网络接口结构,其中上半部为网络接收部分,下半部为网络发送部分。在网络接收部分,每个虚通道都对应了一个接收队列、数据包队列、目的地址寄存器和DMA写控制器(wDMA)。数据包的解析和接收是由接收控制状态机和wDMA控制器协同实现的,图4示意了两者的状态转换关系与协同工作方式。一方面,接收控制状态机对接收队列中的微片进行解析,剥离vcid和微片类型等信息后,将有效数据存入数据包队列;接收控制状态机检测到一个完整的数据包后,就通知相关的wDMA控制器直接将接收到的数据搬移到存储器中。另一方面,DMA写控制器(wDMA)接收到DMA传输请求之后,首先从数据包队列中读取出第一个微片,并将其记录为后续数据的目的地址;然后,wDMA控制器向AHB仲裁器发送总线请求信号,申请对总线的所有权;接下来,wDMA控制器发起AHB总线传输操作,将数据包队列中的数据按照先前记录的目的地址连续地存入存储器中;等到数据包队列为空之后,接收控制状态机和wDMA控制器均返回空闲状态。在网络发送部分,处理器将待发送数据的起始地址(针对发送节点而言)和数据长度写入相关的DMA读控制器(rDMA)中,再由rDMA将数据从存储器搬移到发送端的数据包队列。发送控制状态机再将数据包的目的地址(针对目的节点而言)与数据包队列中的数据进行打包后传入网络。另外,由于VC0和VC1可能同时发送数据包,因此在发送控制状态机中还进行了虚通道间的仲裁,仲裁的结果用于选择相应的数据进入网络。为了简化接收控制状态机对完整数据包的探测过程,规定网络中数据包的长度不能大于NI中数据包队列的深度,以使数据包队列可以存放一个完整的数据包。在本文中,NI接收部分和发送部分的数据包队列深度均被设置为16,因此网络中的数据包最长不能超过16个微片。
4验证及性能分析
4.1验证及测试环境为了对设计的片上网络传输接口进行验证及性能测试,本文将网络接口集成到了一个4×4mesh片上多处理器验证环境中,图5示意了该多处理器的结构:每个节点均为一个基于AHB总线的小型系统,其中包含了一个小型RISC处理器(μP)、私有SRAM存储器、片上网络路由器及网络接口。为了对网络接口的性能进行对比分析,本文选取了并行FFT计算[7~10]作为应用案例来对该16核系统进行性能测试。其中,测试组采用本文设计的网络接口,数据在存储器和网络接口间的搬移采用DMA方式实现;而对比组采用非DMA操作的网络接口,数据的搬移是以中断的方式通知处理器μP干预实现。
4.2案例测试图6给出了在16核系统中进行单精度浮点FFT计算的结果,其中横轴表示输入序列长度的对数,纵轴为计算过程所消耗的时钟周期。从图5可以看出,对比采用CPU干预型网络接口的16核系统,采用DMA传输型网络接口的16核系统具备了更高的并行计算性能。当FFT序列长度为1024时,本文设计的网络接口使FFT计算耗时降低了20%左右,且随着FFT序列长度的增加,DMA传输型网络接口对16核系统并行计算性能的提升更加明显。导致FFT计算性能提升的原因主要有两点。1)由于本文设计的网络接口通过DMA方式实现数据负荷的搬移,而非通过CPU进行显式的搬移,因此缩减了数据包的发送和接收延时,减低了处理器核间通信带来的性能损耗;2)网络接口采用的DMA传输方式减少了CPU对数据包的干预,使得CPU能更加专注地进行数据运算,因此应用程序的并行计算性能得到了提升。
《微机原理与接口技术》是高职高专计算机及相关专业必修的一门专业基础课,同时也是一门实践性和应用性很强的课程。经过理论和实验两方面的教学,使学生掌握微型计算机的基本工作原理,汇编语言程序设计的基本方法,微机系统与输入输出设备的典型接口电路和接口技术,并能综合运用软、硬件技术分析实际问题。《微机原理与接口技术》这门课程的学习涉及到很多先行课程,比如《模拟电子技术》、《数字电路》等,这些课程的学习效果往往对本课程的学习有一定影响,加之本课程的教学内容较多,各个知识点之间相互交叉又造成理解上的困难,需要学生记忆的内容太多,导致学生学起来较困难,从而失去了学习的信心,达不到预期的教学效果。针对这样的现状,作者结合自己的教学实践,谈谈对于该课程教学的思考。
一、让学生充分认识到该课程的重要性,提高学生的学习动力及兴趣
随着高校的扩招,就业压力的增大,学生密切的关注所学的知识是否能够促进自己未来的就业和发展,高职学生尤是如此,所以在教学过程中经常有学生提问说《微机原理与接口技术》这门课程晦涩难懂,学习它有什么实际意义,对我今后的学习和发展有什么作用。对于学生的提问我思考:其实在教学过程中第一节课是非常关键的,在第一节课里教师应该将本课程的内容进行整体的介绍并且要告诉学生学习该课程的意义。《微机原理与接口技术》主要讲述微型计算机的基本工作原理,汇编语言程序设计的基本方法,微机系统与输入输出设备的典型接口电路和接口技术三部分内容。第一部分内容的学习有利于学生对微机工作原理有深入地了解,直接地应用在嵌入式计算机、自动控制等方面,掌握它也有利于对后续课程的学习,比如《操作系统》、《编译原理》等,并且这一部分内容中介绍到的计算机内部各部件的结构又是汇编语言程序设计的基础。第二部分介绍的汇编语言程序设计是我们和计算机沟通最直接的方式,如果我们想从事计算机科学方面的工作的话,汇编语言的基础是必不可缺的,因为我们的工作平台、研究对象都是机器,我们通过汇编语言和机器交流,尤其在和硬件关系非常密切的程序或要提高运算速度的程序,即使是 C 语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件的性能。由于汇编语言和硬件密切相关,所以第一部分内容的学习一定要打好基础。第三部分内容是一些常用且典型的芯片,使学生能深层次的理解微机系统,为以后学习其他芯片打下基础。只有让学生认识到本课程的学习确实能对自己的就业和未来发展有用,才能激起学生学习的兴趣和动力,提高主动学习的热情。
二、改进教学方法,提高教学效果
《微机原理与接口技术》这门课程中有一些内容确实比较抽象,难于理解,又有很多知识点需要学生记忆,所以光有学习的热情还不够,正确的学习方法才能有事半功倍的学习效果。
1、在学生学习过程当中,要不断鼓励学生
《微机原理与接口技术》这门课程会分章节讲述构成微机的中央处理器,系统总线,存储器,输入输出设备和一些典型的接口电路以及它们的工作原理。我们知道微机是一个有机的整体,要讲清楚任何一个部件的工作原理都不可能只单独将这一部件拿出来讲,必然涉及到其他新部件,而其他新部件我们还没接触到,所以经常出现一个知识点还没讲清楚,又出现新的疑问,在整个课程的学习当中疑问会一直存在,直至该课程结束,也就是说只有到学期末所有的疑问才能搞清楚。还有这门课中最难的地方在第二章,本章知识理解起来困难,并且有大量内容(几乎全部内容)要求在理解的基础上记忆以便为后续的学习奠定基础,而这时学生刚刚开始接触这门课程便一下子觉得很难,容易产生放弃的思想。所以教师在整个学期别是学期初一定要不断鼓励学生:学习中存在问题是很正常的,随着进一步学习问题会得到解决,关键是坚持,树立学习信心。
2、对于抽象的概念和工作原理,老师要精心设计课堂教学,使晦涩难懂的知识变得浅显易懂
课堂教学是使学生获得知识最有效最快捷的方式。在教学过程中,真正做到“以学生为本”,提高课堂效率,我的体会是精心的进行合理、有效的课堂教学设计。合理、有效的课堂教学设计可以在最短的时间得到最好的教学效果。比如,本课程的教学安排中,先讲cpu内部寄存器后讲存储器分段,讲cpu内部寄存器时就要涉及到存储器分段,这样一来知识点前后交叉多,学生听不明白,老师也会觉得讲不清楚。换种思路,重新调整一下次序,先介绍存储器分段,讲清楚四种段、段地址和偏移地址以及物理地址的形成,再介绍cpu内部寄存器,4个段寄存器分别存放4个段的段地址,地址指针寄存器和指令指针寄存器用来存放偏移地址,这样讲符合学生接受知识的规律,用时较少而且教学效果好。
3、采用多媒体教学手段,更高效地完成课堂教学任务
随着信息技术的发展,多媒体技术在课堂教学中得到了广泛的应用。多媒体计算机使图、文、声、像集于一体,使教学内容形象生动富有感染力,使抽象问题形象化。一些抽象概念在单纯语言讲解的情况下,感性材料不足,说服力不强,通过多媒体可以把抽象的理论和抽象的模型具体形象地展示在屏幕上帮助学生理解。比如讲存储器分段时,说到存储单元物理地址唯一而逻辑地址不唯一时很多学生感到很困惑“逻辑地址不唯一”,传统教学手段凭教师一张嘴、一根粉笔、一块黑板有时很难讲清楚,这时采用多媒体动画的形式将存储器分段进行演示,它能够直观形象地让学生看出段与段之间的一种重叠关系,某个存储单元既属于A段又属于B段,从而得出这一存储单元逻辑地址不唯一,既记住了结论又很好的理解了结论推导的整个过程。
4、注重实践环节
参考文献:
[1] 胡汉才,单片机原理及接口技术[M]. 北京,航空工业出版社,1998:145-200.
20世纪70年代大规模集成电路技术的发展促生了第一台微型计算机,至今,微型计算机技术在短短三四十年的时间里已不可动摇地发展成为计算机技术领域的一个重要的分支,广泛深入地渗透到工业控制、仪器仪表、消费产品、汽车、办公自动化和通信等领域,从微控制器的品种、结构、功能、性能、价格、生产工艺到开发方式等都以迅猛的势头快速发展。这无疑对微型计算机人才的适应性提出了更高的要求。高校开设的“微机原理与接口技术”是电子、自动化、通信、计算机相关专业一门理论与实践联系很强的专业基础课程,具有很高的实用价值,起到承上启下的重要作用,其教学质量的好坏直接影响着学生综合能力的培养与提高。为了更好地满足社会和企业对具有高技能应用型人才的要求,减轻教师教学的压力,结合自身教学和实践,谈几点体会和改革的新思路。
一、安排好合理的教学计划
“微机原理与接口技术”课程一般安排在大学二年级下学期或三年级上学期,由于内容多、难度大,初次接触微机的大多数学生对其缺乏正确的认知,其心理上对之有一定的畏惧,所以制订的授课计划应重点突出、层次分明、由浅入深循序渐进。
1.重点突出、层次分明
从目前的教学培养方案来看,“微机原理与接口技术”课程的学时一般为60~70学时。在课时这么少的情况下要完成相对较多的内容,安排讲授的重点就应放在实用性的理论知识上。为此应遵循以下两个原则:首先是可行性。根据学生现有的理论储备、企事业现阶段对微机人才的要求和学院相应的设备条件等基础环境,将有实用价值的内容合理地有重点地安排进课程或适度加强。其次是拓展性。为达到实用性强的特点,在教学计划安排过程中,加入对知识纵向和横向的延伸,引导学生积极思考,鼓励学生对所学习内容在实际的应用中讨论,进行更深层次的研究。只有这样,书本上的知识才能真正成为自己的知识。
2.由浅入深、循序渐进
在“微机原理与接口技术”课程之前学生已进行了大学物理和电子技术的学习。为了更好地衔接,教师在制订教学计划时应从学生已经学习过的数制转换、编码、存储器等知识入手逐渐深入到微机原理其他未知的领域,由浅入深地安排好课程计划,慢慢地培养学生兴趣。如此安排易于学生接受知识,起到了很好的承接作用。经过在集美大学信息工程学院、理学院和诚毅学院的实践教学表明,这样的课程安排很受学生欢迎。
二、选择合适的课堂教学方法
理工学科的课程内容相对枯燥又难以理解,所以就更加要求理论教学应该针对性地寻求灵活的教学方法。适合“微机原理与接口技术”的课堂教学方法很多,如启发式教学法、渐进式教学法、比较式教学法、归纳式教学法等。这些方法综合应用在课堂教学中,对教学质量有很好的保证。但针对不同的学生也必须有各自的侧重方法,才能达到最佳效果。下面以前两种方法为例进行探讨。
1.启发式教学
理工课程内容的严谨性很容易造成课堂氛围沉闷,形成填鸭式的教师一言堂。例如信息工程学院的学生特点是入学成绩好,基础知识比较扎实,但缺点是思维不够活跃,最容易形成死气沉沉的课堂。如何在教学中调动学生积极性,是改善课堂氛围、提高学生学习效果的重要环节。所以针对信息工程学院的学生,更合适较多地采用启发式教学,以调动学生学习热情与兴趣,促进学生个性发展。这就要求在教学中根据教学内容的铺展由表及里循序渐进地不断引出问题,启迪学生去思考、分析问题,直到提出解决问题的方法或途径。比如在教授算术运算指令时,首先引导学生回忆标志寄存器的结构和数制计算时的补码运算,在此基础上再仔细讲解算术运算类指令的功能。有了良好的理论基础,再举一例题:十进制转十六进制的转换程序,用传统的顺序结构算法详尽地讲解转换的过程。下一步就是引导学生思考传统算法的不足,有的学生就提出计算太繁复、结构不合理,于是更深地引导如何解决这个问题,要求学生通过课堂练习、课后作业或上机实验完成新的计算程序。反馈的结果是有的学生选择使用循环结构、有的选择过程调用,都大大地简化了转换程序,达到了预期的效果。最后引导学生应用后续的宏或中断的知识完成相应的编程,进一步拓展学生思路,为学习后续的知识打下伏笔。
启发式教学强调学生是教学的主体,调动学生的学习主动性。教师要淡化标准答案,鼓励学生多向思维,弱化思维定势。“微机原理与接口技术”教学中针对信息工程学院的学生采用启发式教学,利用学生相对比较扎实的理论知识为基础,对学生的疑问不作正面回答,启发学生独立思考,培养学生独立解决问题的能力,发扬教学民主,用问题引导学生顺应教师的思路不断思考,主动分析问题,找到问题所在并最终找到解决办法。
2.渐进式教学法
渐进式教学法是指利用已有的知识作为新知识的基础和阶梯,灵活利用知识点之问的横向关联和纵向层次,由浅入深、由易到难、循序渐进的教学方法。此方法在实践中主要针对集美大学诚毅学院的学生,他们的特点是思维活跃、富有个性,但是基础知识相对薄弱。例如在讲解存储器时先是从上学期学生刚刚学过的触发器入手,进入到由触发器构成的存储器单元,将新知识铺垫在学生已有的知识结构上,有了这个基础再进一步讲解CPU对存储器的组织、如何寻址,学生自然而然进入所授新知识的环境中。这样由浅入深,层层递进,符合认知规律,有利于学生系统全面地理解学习内容。
三、改革传统的实验模式
在以往的实验教学中,实验内容往往以验证理论知识为主要目的,这样安排旨在让学生通过实验课程加深对理论知识的记忆和理解,使实验教学成为课堂教学的有限延伸。在实验课中,学生用统一的模式,无法将自己的创造性想法和实验课程结合起来,也无法灵活地将所学的理论知识和实验内容结合起来。由于实验内容和课堂教学内容过多重复,无法激发学生对实验课程的兴趣;理论验证性实验过多,学生也很难去真正地思考、分析问题,失去了提高动手能力的机会。改变传统实验过程中以验证性为主的实验模式,以理论验证为基础,增加实验的拓展性、挑战性和综合性,真正达到让学生在实验环节中提高动手能力、锻炼思维能力的目的。
1.改验证性实验为引导性的试验
教师仅提供实验目的和要求,指出实验的方向,学生提前到图书馆或者网上查阅相关资料,设计实验方案,编写相关的流程图和预习程序。在实验中的任务是发现问题并解决问题,最后得到实验结果。学生应根据自己的实验过程撰写实验报告,重要的环节是报告中一定要包括实验中各自遇到的问题,解决方案是什么;如果最终也未能解决问题,要分析原因并考虑可能的解决方案。同时教师也可以组织学生交流,分组讨论,对各组实验结果与报告展开分析,从而提高学生的研究能力和科学实验能力。
2.加强参与实践的积极性
为了充分调动学生的积极性和主观能动性,实践中还引入激励机制。每一个能提前完成实验任务的学生都有机会从教师那里随机的得到一道拓展性的题目,这个题目是教师根据学生前面完成任务的具体情况、遇到的问题和存在的不足或是希望其在某一方面有更深的思考而针对性地提出新任务,是本次试验的巩固和延伸。等学期结束后进行统计,完成拓展任务多的学生就有机会实验考试免试。由于新任务是学生主动要求的,再加上激励机制,故学生积极性非常高,解决问题的主动性很强,收获也更大。
3.充分利用好课外时间
论文摘要:本文论述了激光探测系统信息接口技术;讨论了激光探测接口的一般设计思想。
1引言
激光具有波长单一和良好的方向性,所以和传统的探测方法相比,激光探测具有精度高,抗干扰能力强等特点,在激光测距、激光雷达、激光告警、激光制导、目标识别等军事领域,都得到了广泛应用。针对不同武器系统的需求,激光探测系统接口呈现出多样性。
近年来,随着应用需求和集成化度的增加,激光探测系内部、激光探测系统和各武器平台之间集成了不同厂商的硬件设备、数据平台、网络协议等,由此带来的异构性给探测系统的互操作性、兼容性及平滑升级能力带来了问题。
对激光探测系统而言,接口技术的设计是整个系统集成的关键技术。一个激光探测系统的设计、实施,有很大的工作量是在接口的处理上,好的接口设计可以提高系统的稳定性、运行效率、升级能力等,本文以激光探测系统接口技术为研究对象,着重分析其接口技术类型、设计考虑因素和验证方法。
2激光探测系统几种主要接口技术
接口是多要素或多系统之间的公共边界部分,对激光探测系统的接口包括机械接口、电气接口、电子接口、软件接口等,本文着重讨论电子接口。按物理电气特性划分,常用的激光探测系统接口类型可分为以下几类:
1TTL电平接口:最通用的接口类型,常用做系统内及系统间接口信号标准。驱动能力一般为几毫安到几十毫安,在激光探测系统中主要应用是作为长距离的总线数据和控制信号的传输
2CMOS电平接口:速度范围与TTL相仿,驱动能力要弱一些。
3ECL电平接口:为高速电气接口,速率可达几百兆,但相应功耗较大,电磁辐射与干扰与较大。
4LVDS电平接口:在标准中推荐的最大操作速率是655Mbps,电流驱动模式,信号的噪声和EMI都较小。
5GTL接口电平:低电压,低摆幅,常用作背板总线型信号的传输,虽然使用频率一般在100MHz以下,但上升沿一般都比较陡,特别是对沿敏感的信号,如时钟信号。
6RS-232电平接口:为低速串行通信接口标准,电平为±12V,用于DTE与DCE之间的连接。RS-232接口采用不平衡传输方式,收、发端的数据信号是相对于信号地的电平而言,其共模抑制能力低,传输距离近,多用于点对点接口通讯。
7RS-422/RS-485接口:采用平衡方式传输,采用差分方式,使其在通讯速率、抗干扰性和传输距离较RS-232接口有较大改善。多用于多点接口通迅。RS485电平接口可驱动32个负载,忍受-7V到12V共模干扰。
9光隔离接口:能实现电气隔离,更高速率的器件价格较昂贵。
10线圈耦合接口:电气隔离特性好,但允许信号带宽有限
11以太网:经常采用的是10Base-T和100Base-T两种主流标准,主要应用激光探测系统和分系统之间的接口通讯和数据传输。以太网接口具有性价比高、数据传输速率高、资源共享能力强和广泛的技术支持等众多优点。
12USB接口:USB总线接口是一种基于令牌的接口,USB主控制器广播令牌,总线上的设备检测令牌中的地址是否与自身相符,通过发送和接收数据对主机作出响应,其最大的优点是安装配置简单。
3激光探测系统接口方案设计考虑因素
随着大规模数字处理芯片和高速接口芯片的迅猛发展,激光探测系统也呈现出智能化、小型化、模块化的趋势。在激光探测系统中,信息接口的设计逐渐向标准化、网络化、多节点、高速等方向展
3.1接口信号传输中的干扰噪声
3.1.1接口信号传输中的主要干扰形式
a)串模干扰:杂散信号通过感应和辐射的方式进入接口信道的干扰。串模干扰的产生原因主要是传输中插件等所产生的接触电势、热电势等噪声引起的。
b)共模干扰:干扰同时作用在两根信号往返线上,而且幅指相同。共模干扰产生的原因,主要是传输线路较长,在发送端和接收端之间存在着接地的电位差。
3.1.2接口信号传输中的抗干扰措施
a)传输线的选择
为了抑制由于杂散电磁场通过电磁感应和静电感应进入信道的干扰,接口传输线应尽量选用双绞线和屏蔽线,并将屏蔽层接地,而且屏蔽层的接地要于激光探测系统一端浮地的结构形式配合,不要将屏蔽线层当作信号线和公用线。
b)传输线的平衡和匹配
采用平衡电路和平衡传输结构是抑制共模干扰的有力措施。目前广泛使用的是差分式平衢性线电路,例如RS-422/RS-485标准串口电路。
接口信号传输时还要考虑与传输线特性阻抗的匹配问题。一般长线传输的驱动器接收器都适用于驱动特性阻抗为50Ω—150Ω的同轴电缆和双绞线,一般接口接收器的输入阻抗要比传输线的特性阻抗大,因此要设法将两者匹配,最好将发送端和接收端匹配。
控制信号线的具体配置:控制信号线要和强电、数据总线、地址总线分开,尽量选用双绞线和屏蔽线,并将屏蔽层接地。
c)隔离技术:电位隔离是常用的抗干扰方法,接口信号采用光电隔离和电磁隔离可以切断接口内外线路的电气连接,从而减弱露流、地阻抗耦合等传导性干扰的影响。
3.2接口硬件的选择原则:
3.2.1为各类接口选择合适的总线接口芯片、接口总线,并设计具体的接口电路。
3.2.3选择接口芯片时应根据激光探测系统CPU/MPU类型,总线类型/宽度和系统所完成的功能并按照高效、经济、可靠,方便、简单的原则来确定。
3.2.4设计具体的接口电路应具体考虑电源问题
3.2.5数据/命令的锁存和驱动
激光探测系统内部及激光探测系统和其他系统间实施数据/命令传输时,一般采用数据锁存技术来适应双方读写的时间要求。
3.3接口的实时性
由于激光探测系统对数据处理和传输的实时性要求很高,设计时要使时钟抖动、通道间时延、工作周期失真以及系统噪声最小化,所以设计接口时尽量选用高通讯速率和同步工作方式。
接口软件的设计原则
同步通讯系统软件设计要充分考虑数据流量的控制,最好在数据发送方发送数据时每隔一段时间插入一段空闲时间,从而保证数据同步传输的可靠性。
异步通讯系统软件设计要充分考虑合理的数据校验方式,可以根据系统要求选择冗余校验、校验和、冗余校验的方法。
4激光探测系统接口方案设计验证
构建高速有效的激光探测系统接口是非常有挑战性的,并且设计者需要在设计接口前后就考虑多个因素,详细的系统级的验证都是必须的。
4.1设计前的验证
基于指令集模拟器和硬件模拟器软硬件模拟技术是一种高效、低代价的系统验证方法。接口设计软件采用汇编,C,C++等语言编写,用户编写的接口源程序经过交叉编译器和连接器编译,输入到软件指令集模拟器进行软件模拟。而接口硬件验证则采用硬件描述语言如VHDL设计,经过编译后由硬件模拟器模拟。但设计前的验证也有一定的局限性,比如只能验证数字接口和验证环境理想化等缺点。这些都需要设计后的验证
4.2设计后的验证
最常见的验证方法是制作模拟激光探测系统内部接口和系统间外部接口的通用信号源,通用信号源可以模拟探测系统内部的如主回波、时统、显示、键盘等信号,也可以模拟输入外部操控命令,并将激光探测系统状态、测量数据等信息显示输出。
电子信息工程专业作为实践性、应用性非常强的理工科专业,学生必须具备扎实的基础理论知识,具有较强的实验技能,今后才能顺利地从事电子设备和信息系统的维护和研发。要实现这个目标,必须十分重视相关课程的建设,搞好实验教学改革。而单片机原理与接口技术课程作为电子信息专业的一门专业主干课程,其应用性非常强,设计性实验开设质量对于学生今后就业、工作至关重要。
一、教学现状
单片机原理与接口技术课程是电子信息工程专业核心课程之一,理论的重要性不言而喻,但在实验教学方面大都还是停留在传统的实验模式上,离培养学生实践动手能力和创新精神还有差距。很多学生反映,课程学习下来理论基本掌握了,验证性实验也能顺利完成,但要真正完成一个实际项目时,却无从入手。出现这种现象原因是多方面的,笔者认为主要有:
1.教学模式方面的原因。传统教学方式中,教师主要注重于理论的完整性和知识结构的完备性。理论上从单片机的结构讲起,然后讲汇编指令和c语言编程,再讲硬件接口及相关的程序编写,最后讲一两个实例,课时也就差不多用完了,再想讲其他东西就没有时间了。WWW.133229.cOm实验也注重基本原理和基本方法的训练,为了让学生认识单片机的基本组成和基本指令,所开出的实验就占了大部分实验课时,最后只能做几个综合性实验或做一个简单的设计,这样就结束了整个课程的学习。
2.教师方面的原因。自从高校扩招以后,学生的数量剧增,而教师并没有同比例增长,教师承担的课时量太大,教学压力过重。具体到单片机原理与接口技术这类专业性和实验性都非常强的课程,存在着精力投入不够的问题。如果要改革实验教学的模式,以设计性实验为主的话,教师就要投入非常多的精力。
3.评价体系方面的原因。就评价体系而言,目前通行的仍然是以分数的高低来评价学生学习成绩的好坏。一般采用平时成绩、实验成绩、考试成绩各占总成绩的一定比例来得到学生课程的最后得分。对有些课程来说这种方法是比较科学的,但对单片机原理与接口技术课程,就会存在这些问题:学生成绩不低,但一旦面临实际问题时,无从入手,没有达到本课程的教学目标。
二、解决对策
为提高单片机原理与接口技术课程教学质量,培养学生解决实际问题的能力,笔者认为,提高设计性实验开设的质量是教学改革的重点,应该从以下几点来改革:
1.教学模式。提出和采用新的教学模式,实验开设要特别注重开出的设计性实验质量。新的教学模式主要包含理论教学和实验教学两个方面。在理论教学中,单片机的结构和基本指令讲解要精,应通过实例来将相关的知识串起来,力求通过具体实例的讲解达到以较少的理论课时就让学生真正掌握单片机的结构和指令的目的。在实验方面,则采用以开设设计性实验为主、验证性实验为辅的方法,并提高实验课的课时数。适量开设验证性实验,在课堂内只做1~2个,而将大部分实验内容放在课堂外,由学生通过开放实验室单独完成。增加较多的设计性实验,供学生选做,在教师精心指导下,让学生在课外准备,课内完成,切实提高学生的实战技能。
2.教师自身的定位。教师应自觉提高自身做项目的能力,并保证足够的精力投入到教学中去。教师要注重平时积累,一方面,要自己动手,精心制作好几个作品。另一方面,也可以通过提出选题,指导学生去做,将完成后的作品及文档全部存档。只要通过2~3年的积累,就可以形成难度、层次区分较为合理的项目选题库和作品库,既为后续班级的教学创建了良好的条件,对后续学生的实验起到示范和引领作用,又为今后的教学工作减轻了负担。要做好这些,就要求教师充分明确自身职责,牢固树立以教学为中心的观念,保证有足够的精力投入教学中。
3.评价体系。作为评价体系,要改变传统的基本是以分数论英雄的模式。单片机原理与接口技术课程如果只是掌握了一些理论知识而没有实战能力,分数再高都不能算是学好。作为对学生的评价,笔者认为一定确立以实践能力为主体的评价体系,通过对学生做的项目难易程度、项目完成的效果等验收情况来给出合适的评价。
三、设计性实验开设与评价体系建立中要注意的几个问题
想搞好单片机原理与接口技术课程建设,提高学生的实战能力,就要以设计性实验的开设为重点来进行整体设计。笔者认为需要特别注意抓好以下四个衔接:
1.理论与实验的衔接。理论教学是单片机原理与接口技术课程教学中必不可少的组成部分,但其开设方式不能采用传统的教学方法,而应设计出一种项目教学或称为专题讲授的形式来进行。首先,要讲透基础部分,笔者认为可以分成单片机的内部结构、单片机的指令系统、程序编写的基本思想、硬件接口构建等四个专题进行。其次,要针对课程特点,做好五个简单项目,如外部中断的使用、定时器中断的使用、并口的扩展、串口通信、ad和da转换。最后,要对相关知识点全面整合,综合演练,实战2~3个较为复杂的综合性项目,进行原理图分析、算法设计和程序分析,并制作出作品进行演示。按这种思路设计,理论教学大致课时数为36~48个课时,实验课时数为24~36个课时。
据此分析,实验教学则应充分重视设计性实验的开设。与理论教学相对应,每讲完一个项目,就要依托该项目开设一个设计性实验,每个实验3~5个课时。通过简单的5个项目和较复杂的2~3个项目的训练后,学生能掌握单片机开发和设计与实物制作的基本方法和技能。当积累了2~3年后,有了很多已成功的项目可参照时,不同的学生就可以选做不同的设计性项目。在进行单片机原理与接口技术的课程设计时,则应要求学生在设计性实验的基础上进一步深化,将多个部分综合在一起设计制作一个更复杂、具有较完备功能的实际系统。这是一个由理论出发,通过基础实验、简单的设计性实验、复杂的设计性实验,最后完成复杂的课程设计过程,符合循序渐进的教学规律,实现了该课程理论与实践的完美结合。在此过程中,设计性实验的开设基本覆盖了单片机原理与接口技术课程的所有知识点,使学生牢固掌握基本理论,熟练掌握基本设计思路,综合应用基本设计方法,从而达到学以致用的根本目的。
2.验证性实验与设计性实验的衔接。验证性实验是指为验证已经学习过的理论知识所设置的实验;设计性实验是指给定实验目的要求和实验条件,由学生自行设计实验方案并加以实现的实验。验证性实验作为一种传统的教学方法,在现在的实验教学中也还有一定的作用,可为设计性实验的开设提供一些必要的基础。现在的验证性实验一般是在相应的实验箱上完成,通过开设1~2个验证性实验可让学生了解单片机的基本构成和基本工作原理,所以在开设设计性实验前开设验证性实验是非常必要的。同时,一些设计性实验的开设可在实验箱上对验证性实验进行改造而成,特别是对于开始的简单的设计性实验更是如此。比如一些验证性实验,所有的电路硬件在实验箱中是现成的,同时给出相应的实验程序范例,学生就可以在实验箱上进行验证,对所做实验的功能进行分析。教师只需要在理论教学时将程序流程图和涉及的算法讲述清楚,最后要求学生去编写程序,然后再进行功能验证即可。采用这么一种由验证性实验作为基础并进行改造的方法对于以基本原理的掌握为目标的简单的设计性实验具有很强的可操作性,有利于验证性实验到设计性实验的自然衔接。
3.课堂与课外的衔接。设计性实验开设要做好课堂与课外的衔接。因为设计性实验是要学生自行设计实验方案并加以实现的实验,所有的实验方案不可能仅在几个课时的实验课上完成,主要工作要在课外完成。一方面,实验方案的制订、原理图的设计、实物的制作等主要在课外完成,实验课中主要是在教师的指导下进行调试和测试。另一方面,设计性实验很难一次性成功,往往需要多次尝试、反复修正才行,这些必须在课外完成。要使设计性实验真正达到较好的效果,除了在理论教学中要注重和实验教学衔接外,课外的衔接尤其重要,要做好实验室开放,让学生在课外能够较方便地利用实验室的资源,也应鼓励学生采购一些比较简单的单片机开发工具,如简易开发版、烧录器等。
4.评价标准的再定位与评价体系建立的思路。验证性实验往往只涉及一门课程的一个章节或一个知识点的内容,学生通过验证性实验,可以使所学理论知识具体化和形象化,加深对所学知识的理解与掌握,培养基本动手能力。设计性实验突出它的自主设计性,可以是单一知识的运用,也可以是多知识点的综合运用,给出实验目的、要求和实验条件,由学生自行设计实验方案并加以实现,所以设计性实验带有试探性、研究性,在时间上也需要课内与课外相结合。
由于验证性实验与设计性开设的目标不同,所以最终的考核方式也不同。对于验证性实验,教师可以直接根据学生所做的实验报告评判其实验成绩。传统的做法是百分制。一般每个实验成绩包括三个部分:实验预习(20分)、实验操作(40分)、实验报告(40分)。使用传统的百分制,可以评价学生是否掌握了基本理论和设计方法。但设计性实验所涉及的知识点数量不同,综合运用的效果不同,设计方案是否得当,步骤是否简易可行,实验的成本、效率是否令人满意等等,都不能一概而论,因此需要结合各方面进行综合的评定。设计性实验的考核要贯穿这样一个原则:淡化结果,注重过程。对于设计性实验我们更重视学生在整个设计过程中的表现,而测定结果只作为考核的次要因素。学生在设计方案中是否有独到新颖的想法,整个实验思路逻辑是否清楚,实验过程是细节严密还是顾此失彼,结果是否可信等都是评定设计实验成绩的重要因素。考核中要充分鼓励和肯定学生在设计过程中所表现出的敢于挑战、主动学习、大胆创新的精神,以及由此带来的思维水平和实践水平的全面提高。
因此,设计性实验不宜采用传统的百分制,笔者认为,宜采用优、良、中、及格、不及格5个档次来进行评定。首先明确“优”和“及格”的标准,在“优”的标准下,适当下降一点作为“良”的标准,“及格”标准高一点作为“中”,达不到“及格”标准的就判定为“不及格”。比如,每一个项目都设定多个指标,完全达到指标并有所创新的评为“优”;完全达到指标而无创新的可评为“良”;实现主要指标可评为“中”;实现部分指标,能体现设计者掌握了基本相关基础知识则可评为“及格”;没有实现任何指标,或没有做的评定为“不及格”。这样就应在设定实验指标上着手,针对具体的实验进行不同的设定,才能比较准确地定性评价学生的实验能力,这一点仍需在实践中不断探索和改进。
四、结语
中图分类号:G642 文献标识码:B
文章编号:1672-5913 (2007) 20-0077-04
1引言
目前,我国计算机专业的教学模式主要还是从基础理论到专业理论,实践环节较少,这就导致了学生厌学,眼高手低,本科毕业连基本的编程技能都不具备,从而,在就业市场上一败涂地。这些效果又使在校学生更加沮丧,进一步影响其学习的积极性。中国要发展IT产业,必须改革计算机专业的教学模式。
印度是一个贫穷落后的发展中国家,软件业的成就却举世瞩目。印度的软件人才主要是通过职业教育而不是高等教育来培养的,从而大大降低了培养成本和使用成本,缩短了培养周期。其教学不是按从基础理论到专业理论,再到实习的路径,而是把顺序颠倒过来,先从做开始,在做的过程中,学生如遇到问题,再以此问题为基点去学习专业理论。学员一入学,便要做项目,培训中心把所承接的大项目分解成一个个小项目,然后要求每个学员完成一个小项目,让学员在完成项目的过程中学习。培训中心的学员最后一年都在公司实习,积累工作经验,同时也给企业提供深入了解雇员的机会。
我们借鉴印度发展软件业的成功经验,结合多年从事计算机监控的项目经验和从事教学的心得体会,提出一种“趣味实用程序的演示+知识点+趣味实用程序的模仿+综合训练+学术论文”的教学模式[1],引导学生充满兴趣地钻研技术,最后逐渐成为计算机监控方面的专家,并熟练掌握计算机专业的基础理论与编程语言。
2计算机监控技术的特点与主要技术
计算机监控系统是以监测控制计算机为主体,加上检测装置、执行机构与被监测控制的对象共同构成的整体。在这个系统中,计算机直接参与被监控对象的检测、监督和控制。检测主要是通过传感器和相应的输入模块来取得被监控对象的状态数据,监督主要是对状态数据进行分析后给操作员提供手动操作的参考,控制则是手动或按照一定的策略自动地对被监控对象执行相应的操作。
传统的检测与控制所使用的模块一般采用RS-232接口,因为该接口简单可靠。随着网络技术的发展,采用网络接口RJ-45的模块逐渐增多。监控用的计算机一般称为主控机(或上位机),各种检测与控制模块或嵌入式系统一般称为受控机(或下位机)。主控机软件一般采用高级语言(如Visual Basic 6.0,简称VB)进行开发;受控机软件没有软件界面,仅实现相关的逻辑功能,一般采用C语言、汇编语言等进行开发,通过调试后,再下载到受控机系统中。主控机通过RS-232/RJ-45接口与受控机通信,进行数据的查询与命令的发送。各种控制策略、设备的状态等的保存,都需要使用数据库技术。因而,实现一个计算机监控系统,需要综合使用诸多计算机的基础理论与编程语言:计算机接口技术、计算机网络、数据库系统、VB与C语言等,利用计算机监控技术作为计算机专业实践训练的主线,具有很高的操作性和极大的意义。
3仿真软件的设计
学习计算机监控技术,需要购买相应的硬件模块,从而在一定程度上制约了该技术的推广。本文提出了一个基于RS-232的仿真模块的可视化模型,在此基础之上设计了可视化的仿真数字I/O模块,模拟量输入模块,并设计了对应的通信协议。主控软件与仿真模块之间的通信通过虚拟串口实现,从而,达到在计算机房零成本搭建计算机监控系统平台的效果。
RS-232/RJ-45协议转换器可以用于实现计算机监控系统的远程处理,也可以用于将普通的输入模块转换为仿真的网络传感器。
3.1仿真模块的可视化模型
基于RS-232接口的仿真模块的可视化模型如图1所示。模块表示区用来模拟实际的模块,对于数字量输入模块(Digital Input Module,DIM),输入开关根据设定的时间随机闭合/打开,并通过图形表示;对于数字量输出模块(Digital Output Module,DOM),用有源电路回路表示输出开关的状态,例如,开关闭合,播放铃声或灯亮等;对于模拟量输入模块(Analog Input Module,AIM),用图形表示检测回路,并在检测点旁边显示温度的原始数据。每个模块都设置数据接收和发送指示灯,显示数据收发的状态。
功能按钮区为系统设置按钮和关闭程序按钮。系统设置主要完成串行通信的端口号、波特率、校验码、结尾码、模块地址等的设置,对于DIM模块,还需要设置随机切换输入开关所需要的时间段。
协议描述区显示本仿真模块适用的通信协议,包括协议的格式及其具体的含义。
数据接收区显示接收到的主控程序发送的原始数据包,以字节形式显示;数据响应区则发送对应的响应数据包,也是以字节形式。
利用此可视化模型设计的软件界面,使用方便,动态效果好,仿真模块的开关状态、温度数据、数据收发状态以及传输的数据均一目了然。与实物模块相比,不需要物理连线,也不需要信号发生器与万用表来产生信号和测量状态与数据,对于通信协议,也不需翻阅手册。
3.2通信协议的设计
相同类型(或厂家)的模块一般采用相同的前导字符,EOT是一个特殊的ASCII字符(0x04),常被用做控制字符,这里的仿真模块全部采用EOT作为前导字符。
计算机所连接的I/O模块比较多,CPU为了与连接的设备相互沟通,必须给设备设置一个编号,从而使CPU可以通过每个设备独一无二的编号与不同的设备进行沟通,这个设备编号就是地址,用ADD表示,地址占用一个字节。
功能码主要包括读功能码(用RD表示)和写功能码(用WD表示)。RD用字符“R”(0x52)表示,WD用字符“W”(0x57)表示。
BCC为数据块校验码,一般有Xor、Add、CRC、CheckSum几种。Xor与Add分别是异或与累加和,占一个字节的长度;CRC与CheckSum分别是循环冗余校验码与TCP/IP协议簇中所使用的累加求补校验码,分别占两个字节。这里的仿真模块提供4种数据块校验方式,根据程序设置进行选择。
不少模块以回车CR(0x0d)作为结尾标志EM(End Message),而TCP/IP协议簇(如HTTP,POP3等)较多地采用CRLF(0x0d0a)作为结尾标志,这里的仿真模块也提供这两种结尾标志,根据程序设置进行选择。
协议举例。读取仿真模块状态的命令协议如图2所示,其中,ADD的范围为1至255,可由程序进行设置,这样,一台主控设备可以连接多达255个虚拟模块。BCC和EM的种类也可以根据需要由程序进行设置。
3.3RS-232/RJ-45协议转换器
该协议转换器的主要功能是用软件转换器来替代硬件转换器,实现串口数据与网口数据的直接转发,不涉及到协议的变换。串口只要进行常规的设置,与所连接设备的串口参数一致。由于主控机与嵌入式模块之间一般采用串口进行连接,另外,数据采集模块也大部分采用串口,因而,通过该协议转换器,可以将此类串口设备连接到Internet,进行远程处理。AIM模块与该协议转换器配合,可以转换为一个开关量输入的网络传感器。
3.4虚拟串口的使用
除了跟内置的Modem通信,一般地,进行串行通信的调试都需要RS-232连接线。参考文献[2]提供了虚拟串口驱动程序,模拟实际的RS-232接口,可以在没有物理RS-232接口和电缆的情况下,进行串行通信的调试,并且,还可以模拟硬件引脚信号的变化。
4教学模式的具体实现
重视教材建设和教学方法的研究,在教学过程中重视由实践而激发学生对相关理论的兴趣,再用提高了的理论水平来指导新的实验和实践活动。传统的教学模式在实践环节上的缺乏与不足也与今天社会人才市场急功近利的需求远远不能相适应。长期以来,我们培养的学生存在着“什么都学过,却什么都不会”的尴尬局面,专业教育和教材与市场需求严重脱节。事实上,学生就业难并不是就业市场不需要人才,其根源还是教学的现状所致[3]。
本文采用“趣味实用程序的演示+知识点+趣味实用程序的模仿+综合训练+学术论文”的教学模式,在讲解新的课程的时候,首先演示程序,例如,用主控程序对仿真数字I/O模块进行监控,让学生观察输入开关量的变化,可以导致输出开关量的变化,并可以看到指示灯的亮与灭,听到电铃的响与停,通过实物激发学生的兴趣,为学生树立一个目标:要实现该系统,需要掌握哪些技术?从而引出本课程中涉及的主要相关技术。
4.1C语言和汇编语言的应用
C语言是许多高校为计算机专业学生设置的第一门计算机程序设计语言。学习一门语言,不是学习其语法,而是要学习利用该语言去解决问题的方法,从而培养相关的能力。通信是计算机监控系统的关键技术,为了确保数据传输的可靠性,制订了通信协议,引入了校验码与结尾码,如果收到的数据,其头字节、校验码或结尾码错误,一般不进一步处理,而是直接丢弃该数据。
可以利用C语言设计异或校验码的生成程序,即对给定的一批字节,计算其异或校验码;对于含异或校验码的一批字节,编写子程序检查是否正确。同理,可以编写其它校验码处理程序。在此基础之上,进一步讲解在一个C语言项目中集成子程序的方法。如果学生掌握了这些方法,就基本掌握了用C语言开发受控机软件的80%以上的技术。
汇编语言是符号化了的面向机器的语言,比较枯燥。可以用汇编语言来生成校验码与检查数据是否正确,通过调试,让学生明确各个寄存器的作用。在字节处理方面,可以用0表示开关打开,1表示开关闭合,在置位和复位某位时,不能影响其它位的值。
4.2计算机接口技术的应用
在计算机接口中讲解“串行通信技术”时,首先演示一个“支持来电显示的多账号拨号器”,可以让学生一键拨号──201卡与IP卡及所拨打的长途电话,只要一键即可完成,还支持来电显示。通过演示,激发学生的学习兴趣,让学习成为其需要;然后,讲解知识点,让学生模仿软件的开发。
可以通过汇编语言设置串口参数,对串口进行初始化,然后,发送字节数据,控制仿真模块的输出开关,通过声光效果观察程序运行的结果,这比观察单纯的数据变化要形象直观,对学生更有吸引力。
4.3计算机网络的应用
在C语言、汇编语言,以及计算机接口技术中都涉及到字节数据流,这就是协议及主控机与受控机之间的约定。通过串行通信协议,可以自然过渡到TCP/IP协议,加深学生对协议的理解。
在网络编程方面,可以演示一个充当客户机的POP3密码攻击程序,让学生在增强信息安全意识的同时,学习基于Socket的客户机与服务器程序的设计。3.3节中的协议转换器,就是通过客户机/服务器编程,实现网络数据与串行通信数据的无缝转换。这个协议转换器虽然功能简单,代码简单,但是,作用非常大,可以用来对计算机监控系统进行远程调试与维护。
4.4VB与数据库的应用
有了仿真模块,就可以采用VB开发主控程序。VB是一门快速语言,采用VB编程,学生可以很快入门,有利于增强学生学习编程的自信心。VB可以很方便地设计各种表单界面,通过MSComm32控件和Winsock控件,实现串行通信和网络通信,从而与受控机或模块建立通信,完成查询和控制功能。VB也可以很方便地调用数据库,用数据库来存储控制策略、通信协议及设备的状态数据、报警记录等,对数据库进行各种操作。通过主控程序的开发,可以提高对计算机接口技术、计算机网络技术与数据库的感性认识,从而加深理论方面的理解。
5结束语
计算机监控系统广泛应用于众多领域。本文提出了“趣味实用程序的演示+知识点+趣味实用程序的模仿+综合训练+学术论文”的教学模式,通过程序演示,提高学生的学习兴趣,为学生树立一个学习目标,然后,讲解知识点,让学生模仿相应的程序,再进行综合训练。同样是学习相同的课程,但是我们在其中融入了计算机监控技术,设计了仿真模块,可以在计算机房零成本搭建计算机监控系统平台,通过我们的教学,学生毕业后,可以直接作为项目负责人或技术骨干参加计算机监控系统项目的开发。进行深入学习后,学生也可以发表计算机监控方面的学术论文。
目前,我校已经开设了“计算机监控技术与系统开发”课程,实践表明,该课程的开设,将计算机专业的若干专业平台课有机地融合到一起,对提高学生的学习兴趣,加强技能的培养,加深对理论的理解,提高就业率具有重要意义。
参考文献
[1] 马玉春. 计算机监控技术与系统开发[M]. 北京:清华大学出版社,2007.
[2] Virtual Serial Port[EB/OL]. /products /vspdxp/,2007-7.
[3] 周苏,王文. 软件工程实验教学的设计与创新[J]. 计算机教育,2006,(10).
作者简介
马玉春(1969-),男(汉族),江苏南京人,博士,东北大学秦皇岛分校计算机工程系教学主任。
E-mail:
联系方式:东北大学秦皇岛分校计算机工程系,邮编066004