如发现有乱码,
请直接从这里浏览原文
正文摘录:垫07年第8期总第247变比,同时通过限幅电路的保护,使A/D电路处于正常的工作范围。3软件设计图4交流耦合电路基本原理图为了使系统具有开放性、可扩展性和通用性,采用平台化的设计思想。将整个软件分为底层支持层,中间调度操作层和顶层应用层。软件的基本层次结构如图5所示。f接墨燃&撼眦PC忙蜊层I接口,虚拟仪器数据接uf~………厂—————————]JDSP渊度操作软件l中间调度操作层L----———....—————.....———.....———._-J/A/D.D/AI乜路\底层支持层/驱动踊数也状态榆删.A/D、D/A变换\图5软件基本层次结构3.1支持层支持层主要包括A/D,D/A电路驱动函数,状态检测函数,A/D,D/A转换执行函数。A/D,D/A电路驱动函数,主要对硬件的控制总线进行操作,即操作硬件电路上的控制总线和选通总线。其核心伪代码为:intSetAD(int,dw,dw){ifSet—flg一0thenP—k—a;P—x—b;Set—fig=1;returnSet—fig;//驱动标志//设置控制总线控制字a//设置选通总线控制字b//返回已设置标志状态检测函数检测函数主要检测状态总线的状态,其核心伪代码为:DWGet—status(int,dw){“Set—fig!一0//A/D或D/A电路已驱动thendws—read(P—status);//读状态总线字。eturns;//返回状态字Selsereturnnell;};A/D,D/A转换执行函数主要执行A/D,D/A转换,其核心伪代码为:DWEx—AD(intdw){ifSet—fig=0Set—AD(int,dw,dw);ifS!一nell;dwData—AD=read(Databus);//未驱动//驱动电路//状态有效returnDataAD;3.2调度操作层调度操作层主要的任务是,定时检测键盘或计算机虚拟仪器的命令,执行键盘操作、显示、多路A/D数据采集或执行D/A输出。A/D或D/A转换的核心伪代码为:voidOP—ADA(int,int,dw,dw){Get—command(”command);Whilecommandfig!一0for‘一“um一1:num2//指定的第1通道到最后通道“Data—Ex—AD(i,Data—AD);//A/D采样数据Local—Data(”PData,Data);一//将数据存放到缓冲区仅p十十;//缓冲区地址加1end;end;};3.3应用层应用层主要完成键盘操作,显示,PC接口,虚拟仪器数据接口等功能。主要技术是操作命令缓冲区,数据缓冲区。键盘操作程序的核心伪代码:voidKey—Op{ifTimer—Scan—key!一O//键盘定时扫描时间到Key—value=Get—scan—key(intv);//扫描键盘,得到键盘值dwcommand—Check—table(Key—value);//查命令表I-0caJ—command(*p,commamd);//放人命令缓冲区,;显示操作程序的核心伪代码:voidDisply(){ifTimer—Disply!一0Get—command(”p);ifDisplyfig!一0//定时显示时间到//检测显示命令//显示命出现Disply—par=Get—Disply—type(”p);//得到显示类型Disply(Disply—par,”P—Data);//调用显示数据显示elseexit;);PC和虚拟仪器的接口是通过网卡进行接VI的,计算机通过网卡以TCP/IP的方式访问DSP的数据缓冲区、命令缓冲区。其核心伪代码:voidSacet—DSP(dw,。P—command,。PData,int,int){Get—IP—ad(dw);//得到DSP的IP地址Get—D—C—flg(dw,dw);//数据、命令访问缓冲区的标志if(D—A—flg&C—A—fig)!一I.ock//N冲区打开Write(”P—command,*command);//命令写入Read(。P—Data);//读数据4结语本文所设计的多功能电工测量仪已在实验室实现,通(下转第6页)3空
阅读此文(图):
在线翻阅