时间:2022-05-24 11:15:09
引言:寻求写作上的突破?我们特意为您精选了1篇软件设计论文范文,希望这些范文能够成为您写作时的参考,帮助您的文章更加丰富和深入。
一、TRIZ理论与项目导向教学方式在软件
1.TRIZ理论在软件设计类课程教学中的作用
TRIZ是俄语теориирешенияизобретательскихзадач的英文音译缩写,其中文全称是发明问题解决理论。TRIZ理论是由前苏联以阿列赫舒列尔(G•S•Altshuller)为首的研究人员在研究了近250万件涉及各学科领域的发明专利的基础上总结出来的。TRIZ理论成功地揭示了发明创造的内在规律和原理,它是一种创新方法理论体系,运用TRIZ理论可大大加快人们创造发明的进程而且能得到高质量的创新产品。运用TRIZ理论的工具和手段改进教学方法,将TRIZ理论与学生创新能力培养相结合,最终用以进行软件设计类课程创新性教学的实践。这些都将为学生未来的专业发展提供广阔空间,以应对激烈的行业竞争。
2.项目导向教学方式对软件设计类课程教学的作用
项目导向教学方式是在案例教学法之上发展起来的。只不过单纯的案例教学法中案例零散,相互之间没有联系或联系不大。而项目导向教学方式则在整个课程体系中以统一的项目进行引导,对课程内容体系中涉及的所有知识点作为小项目整合入大项目开发中。类似的教学法均属于建构主义理论指导下的教学方法。因为建构主义的观点认为,学生是学习的主体,知识获得的方法主要依靠学生去发现,教师为学生获得知识创设情境,引导和帮助学生通过意义建构获得知识,让学生在意义建构的过程中进行创造。在软件设计类课程中项目导向的教学方式较好地模拟了真正软件项目开发的全过程,能够给学生以任务的刺激,将帮助学生提高学习兴趣,增强主动学习意识,同样有助于学生创新意识的培养。
二、TRIZ理论与项目导向教学方式在软件
设计类课程中的应用对于学生软件设计能力的培养,高等学校计算机相关专业通常都有较为完整的课程体系。一般包括三个层次,即软件工程方面的基础理论课、培养学生软件设计思维的基础语言课、当前流行的软件设计开发工具课程(java、MyEclipse、NET等)。笔者所在院系的教研团队在计算机相关课程中一直采用项目导向的教学方式,并且,通过自己所承担的课程针对TRIZ理论在相应教学环节中进行了一定的实践应用,取得了一定的成果。TRIZ理论与项目导向教学方式在教学中的综合应用对教师教学思维的拓展,对学生学习兴趣、自主学习能力、创新意识和创新能力的培养都起到了较为积极的作用。其相应的应用不仅要具体建立在某门课程中,更应自始至终贯穿在所有的教学与学习环节中。
1.TRIZ理论与项目设计思维在教学中的引入
(1)软件项目的开发过程与重点。任何项目的开发与市场应用均离不开“解决问题的意识”、“针对问题的思考”、“围绕问题的设计”、“具体环节的实施”、“成形项目的市场运作”、“市场反馈与项目支持”以及“对应问题的继续关注”等多个环节的内容。目前的项目教学重点以关注“具体环节的实施”这一步骤为主,从人才系统培养这一角度上来讲显然是片面的、较低级的。因为人才的培养贵在具有解决问题的意识和设计上的创新思想,然后才是通过软件设计类课程中所设计的软件来解决实际的问题。因此,教师在课堂中要不断引导学生在生活中发现问题的习惯。通过TRIZ理论的问题解决策略对问题进行梳理整合,运用软件工程等方面的理论知识进行软件系统的设计,通过相应的语言来实现。这样不仅培养和锻炼了学生创新的思维,同时对学生创新能力的培养起到了推动作用。(2)问题的叠加与解决对学生创新思维的影响。学生学习兴趣与创新意识的引导源头在于“问题”。学贵有疑,小疑则小进,大疑则大进。TRIZ理论与项目设计思维对于学生的影响应该建立在自入学开始的学习与生活中,针对地方高校理工类学生的特点,相应思维方式与意识的引入更应贴进学生生活。例如,在入学第一学期的“计算机文化基础”课程教学过程中,通过与学生日常生活的交流,会发现学生常常抱怨课间时等待电梯时间过长这一情况。那么,教师就可以引导学生进入对这一问题的思考,即你知道电梯的工作原理是什么吗?以及对这一问题最简单的创新解决方法是什么?此时,就可以给出“操作系统的工作原理”以及“TRIZ方法论中的发明原理、冲突矩阵、物场分析等工具”。通过这些内容具体地引导学生了解他们的专业可以解决的问题,深化学生对于其专业知识的理解和应用。
2.软件设计类具体课程中项目的构思与设计过程
(1)项目设计对学生能力的促进。通过有针对性的引导与训练,学生发现问题的主动意识与创新的能力将会有很大程度的提高。此时,教师就可以在相应的软件设计类课程中给出某些不太复杂但针对性较强的项目。项目应符合复杂的现实环境,与实际生活紧密相关,只有这样才能真实反映出完整项目所包含的事件本身、其产生的原因、目前所存在的问题、挑战解决的途径以及资源限制等。学生通过项目必将真正了解工程师在实际设计中所面临的复杂境地以及艰难的抉择。这种项目式教学,既可以增强该课程的整体教学效果,可以运用TRIZ的相关理论进行训练和巩固。学生有针对性的对项目进行分析研究,经过对项目的分析、讨论、决策等环节,进而建立起系统的实践方案。在对项目的构思与设计过程中,学生学习了相关信息的搜集、整理,以及运用TRIZ方法对解决方案进行评估和最终决策的知识。这样的学习有助于训练和提高学生在复杂环境下运用TRIZ来解决实际工程问题的能力。(2)设计团队的组建对学生创新能力和学习效果的影响。现阶段的学生个性差异较大,类别明显,主要分为不同的两种类型:第一种学生思维活跃,易于接受新事务,但与计算机相关的理工类基础知识薄弱。第二种学生思维习惯传统,但相关基础知识掌握的较为系统。目前在地方高校中,第一种学生所占比例为多。教师通过实验教学过程很快就能够掌握学生的不同特性,在软件开发实践环节就可以将不同类型的学生进行整合。由于TRIZ理论来源于大量的专利,对各种场、参数和原则等概念能够真正理解的人才能更好运用TRIZ理论解决实际问题。因此,每个设计小组都由小部分“第二种”学生和大部分的“第一种”学生组成,根据任务的大小进行人数的分配。通过这一方式的应用,学生在系统设计的实践环节所完成大作业的创新性、可转化程度以及设计的质量较之以前按学号分组等情况都有了很大的提高。(3)合理划分项目工作以刺激学生参与意识。地方高校中学生自主学习意识较弱,对项目不能积极参与。针对这种情况,在对指定项目的实施过程中需要按设计小组中的每个人为单位对项目进行合理的划分与整合。例如,在教学楼里排课系统的设计中,小组成员为10人。首先,要选定设计小组长。小组长不一定在技术上全面或某项技术上突出,但应该具备良好沟通能力,并对本小组成员的特点非常了解,这样才能协助教师作好分工协作与管理。然后,通过组长的协助,将项目不同设计周期的任务进行划分。为自主学习意识不强的学生划分简单、技术性不强但非常重要的工作,如对教学楼中的教室面积、桌椅数量、是否是多媒体教室、所属院系等内容进行统计,或者将统计的数据录入数据库、建立数据表等基础且重要的工作。其他成员可根据其特长和能力对项目工作进行划分。通过项目合理的划分就可以使学生在学习的过程中,充分利用现有专业知识选择有效的方法和技术,以项目为对象有兴趣、有责任参与到项目开发和研究的全过程中。学生在参与项目的过程中,运用TRIZ理论的知识方法,从系统的角度处理好整体和局部,集体和个人的关系。(4)积极选取突出的项目设计案例进行成果转化。培养学生发现问题和创新思维意识以及对软件项目设计的能力,其主要动力来源应该是积极促使团队设计成果的转化。可以联系相关部门试用产品,对软件进行市场跟踪。相应的学生对软件工程中软件的整个生命周期会有更深入的了解。
3.注重课程实践对学生创新思维和开发能力的培养
(1)整合课程内容为加大实践课时占比做铺垫。对计算机专业课程,尤其是软件设计类课程的课程内容进行的大胆整合,将整合后让出的理论课时替换为课程实践。例如,原有的C语言、C++和Java分三学期连续讲授。讲的多练的少,学生的思考仅为片段式思考,对三个软件之间的连续性没有深刻认识,对学生创新意识、创新思维和创新开发能力的培养效果并不突出。为此,我们尝试了课程内容的整合,将三学期的教学内容压缩为两个学期。在学生基本掌握了程序设计的思维方式与相应软件的设计方法后,就给出课程设计的任务。只在实践教学引导中给出软件的特色、核心以及需要注意的内容即可,这样不仅加强了课程实践,为学生到企业实训倒出时间,更重要的是能够引发学生自主思考,突出了学生创新能力的培养。(2)教师在课程设计中注重培养自身与学生的创新思维和能力。青年学生思维活跃,作为软件设计专业任课教师一定突破年龄,保持积极活跃的思维才能够在教学的各个环节,尤其是课程设计的环节中有效地发现和引导学生的创新思维和能力。在更高一层次上,教师可以结合教学经验,通过对TRIZ相关内容的不断学习实践,进而合理有效地在实践课中穿插使用TRIZ理论中ARIZ算法等教学工具,引导部分学生在实践过程中对理论内容进行总结与验证,对教材中的现有内容及项目案例进行改进与创新。
三、结语
上述我们探讨了软件设计类课程中TRIZ理论与项目导向教学方式的应用。总之,在软件设计类课程教学中就是要不断拓展教学思路,把培养学生的有效创造性作为首要教学任务。首先,注重TRIZ理论与课程的结合。在教学环节中将TRIZ理论与课程的结合作为贯穿教学内容始终的任务。加大发掘和利用TRIZ理论所揭示的发明创造的内在规律和原理。根据课程的具体情况运用对应的TRIZ理论的工具和手段改进教学方法,将TRIZ理论与学生创新能力培养相结合,拓展教学思路用以培养有创造性思维和创造性能力的学生。同时,以项目驱动教学方法作为教学的基础。将项目导向作为软件设计类课程中最主要的教学方式。项目驱动教学方法是在简单的案例教学法中发展而来的。毋庸置疑的是,软件设计类课程的教学过程时刻伴随着大小案例。我们已论证了这一教学方法对学生学习兴趣以及创造性能力培养上的作用。因此,在软件设计类课程中应全方位、多层次的使用这一教学方法并不断进行了改进和创新。近年由于校企间的密切合作,使得软件设计类课程的教学也与企业进行了对接。即由企业给出任务(通常该任务来源于真实的客户合同需求),此等任务具体驱动整个教学与实践实训过程。在项目导向教学方法的应用前提下,不断更新教学思路,将培养学生的有效创造性作为软件设计类课程的首要教学任务。软件设计人员一般会选择一线城市作为就业地点。地方高校的计算机相关专业毕业生在第一次就业时,考虑技术水平、机会以及发展等原因往往也会选择一线城市作为就业地点。但地方高校所培养的人才应该优先服务于地方经济,这就需要在进行软件人才培养时加入地方特色产业的实践内容,以此为地方战略新兴产业发展做出应有的贡献。
作者:单位:伞颖 陈秀玲 陈井霞 哈尔滨广厦学院 黑龙江职业学院
1测试方法的理论基础
在现代雷达应用中,为了提高雷达信号的抗干扰能力,提高雷达的距离分辨率,有种方式是采用伪随机噪声序列产生的二相编码雷达波形,这种雷达波形带来的好处是当匹配滤波器时域波形与雷达波形匹配时,在匹配滤波器输出一个尖锐的峰值,一旦失配,则匹配滤波器输出峰值快速跌落[8]。导航信号均采用伪随机码序列调制,具有良好的自相关特性和互相关特性,因此,采用基于匹配滤波器接收机模型实现载波相位估计。在本地产生一系列不同初始相位的载波调制信号,与待测试载波调制信号进行相关积分,在输出波形的最佳采用时刻提取幅度,只有到本地载波调制信号的初始相位与输入待测试载波调制信号的初始相位一致,两个波形完全匹配时,最佳时刻的匹配滤波器输出信号幅度最高。由于QPSK导航信号存在正交的两路载波调制信号,在估计其中一路信号的载波相位时,另一路信号则被视为多址干扰。
2测试系统的连接
导航信号IQ正交性测试系统的设备连接如图1所示。测试设备主要包括控制和处理计算机、网络设备以及高速数字示波器。控制和数据处理计算机通过网线和网络设备实现对高速示波器的控制。高速数字示波器的本振设置为外参考,其外参考输入为导航信号发生器的基准频率参考10MHz信号,保证高速示波器和导航信号发生器同源。控制和数据处理计算机控制示波器通道1进行采样触发,通道2对导航信号进行采样。
3开发平台及软件功能
3.1软件的开发环境和体系结构
导航信号IQ正交性测试软件的开发和运行完全基于Windows操作系统运行,虚拟内存至少需要512MB,需要安装Matlab2009或以上版本,软件基于Matlab2009版本的GUIDE用户界面设计。
3.2软件的主要功能
3.2.1测试设备通信功能。用于网络设备TCP/IP接口的参数设置,建立高速数字示波器与控制处理计算机之间的网络连接。3.2.2仪器设置功能。通过网络,设置示波器的采样率、采集数据长度、通道数目、各通道序号示波器显示幅度范围、触发方式和触发电平。3.2.3秒脉冲触发点搜索功能。对载入的卫星秒信号采集数据处理,获取秒脉冲变化沿对应的时刻。3.2.4导航信号参数选择功能。根据导航信号体制,设置导航信号的中心频率,伪随机码码率,本地伪随机码的生成。3.2.5导航信号频谱显示和功率标定功能。对采用的导航信号进行频谱分析,显示导航信号的频谱,并进行导航信号的功率计算,得到示波器通道输入导航信号的功率电平。3.2.6载波相位粗估计功能。从0~2π的范围内用大的步进量,生成一系列的本地伪随机噪声序列调制的波形,与输入波形匹配滤波,确定最佳匹配的本地波形对应的载波初始相位。3.2.7伪随机码相位同步功能。根据载波相位粗估计结果及本地伪随机码,实现输入导航信号的相关捕获,从而确定导航信号的伪随机码相位,实现伪随机码相位同步。3.2.8载波相位精细估计功能。完成伪随机码同步后,以载波相位粗估计值为中心,在粗估计步进量为上下限的范围内,以小的步进量,生成一系列的本地伪随机噪声序列调制的波形,与输入波形匹配滤波,确定最佳匹配的本地波形对应的载波初始相位。3.2.9IQ正交性计算功能分别完成I支路和Q支路的载波相位精细估计后,得到I和Q支路的载波相位,计算得到IQ正交性结果。4.2.10测试结果显示保存功能。将测试过程中生成的频谱曲线、匹配滤波输出曲线图用指定的文件名保存到指定目录。
3.3输出参数
输出参数包括:(1)控制计算机与高速数字示波器的通信连接状态的界面显示;(2)信号频谱特性的界面显示;(3)载波相位粗估计中各不同载波相位匹配滤波器输出结果曲线;(4)导航信号伪随机相位估计的相关曲线;(5)载波相位精细估计中各不同载波相位匹配滤波器输出结果曲线;(6)测试结果的图形文件。
4测试程序流程
在完成设备的连接、被测件和测试设备加电,被测件工作正常并预热到规定时间后,执行测试软件。导航信号IQ正交性测试软件的整体设计和工作流程如图2所示。其中图2(a)是整个测试程序的流程图,在测试流程中包含两个复杂算法的载波相位估计模块和导航信号伪随机码同步模块。载波相位估计模块的详细流程如图2(b)所示,该模块适合载波相位粗估计和精细估计,伪随机码的同步可以采用多速率码同步或部分相关同步技术[9,10],这里采用部分相关的码同步方法,具体实现的详细流程如图2(c)所示。
5仿真结果
以GPS卫星导航系统IIF系列中的L5C信号作为参考,模拟生成一定长度的导航信号,导航信号的仿真参数如下:(1)中心频率:1176.45MHz;(2)调制方式:QPSK;(3)伪随机码速率:10.23MHz;(4)伪随机码长度:10230;(5)伪随机码周期:1ms;(6)I支路载波初始相位:3.2°;(7)Q支路载波初始相位:95°;(8)信号幅度:1mV。高速数字示波器的设置参数:(1)采样率10GHz;(2)存储深度8M。通过导航信号IQ正交性测试软件对模拟生成的导航信号进行处理。导航信号频谱显示和功率标定模块完成信号的频谱显示及功率测试,其结果显示如图3所示。在模拟的QPSK信号中加载白噪声,当载噪比为典型值45dBHz情况下,对I和Q支路进行载波初始相位估计,并计算IQ正交性,其中连续仿真20次,所得的模拟测试结果如表1所示。I支路和Q支路载波初始相位估计的平均误差约为0.045°和-0.11°,IQ正交性设定值为95-3.2=91.8°,仿真测试结果平均值为91.735°,平均测试误差为0.065°。IQ正交性的测量不确定度为0.4833°。
6结束语
导航信号IQ正交性测试软件利用计算机通过网络设备控制高速数字示波器,对导航信号源秒脉冲信号和导航信号进行高速采样,软件对采样后的数据进行数字信号处理,实现导航信号IQ支路载波正交性的精密测试。软件设计和实现带来的好处如下:(1)对导航信号进行直接微波采样,避免了传统导航信号质量评估中首先下变频到中频后采样的方式所附加的非线性失真,测试结果准确度更高;(2)采用波形匹配的雷达信号相关接收技巧,降低了传统导航信号软件接收机相关捕获跟踪处理的复杂度以及对样本数据长度的需求;(3)提出算法依靠数字信号处理,实现简单。在典型的载噪比情况下,IQ正交性测量的随机误差小于0.5°;(4)采用可视化软件的主界面设计,测试处理过程直观,测试过程和结果等相关数据保存方便,软件操作简单,界面友好,效率高。
作者:崔小准 郑育红 付林春 聂欣 李懿 单位:中国空间技术研究院总体部 中国空间技术研究院通信卫星事业部
1单一主节点下位机CAN总线通信应用软件设计
1.1总线中断处理程序设计
硬件的设计架构[7]如图3所示.由于控制分系统下位机外部中断只有5个,其中定时、星敏感器、GPS秒脉冲、应急中断占用了4个外部中断,因此两路CAN中断信号经过FPGA进入CPU的同一级中断.星务中心计算机为主节点,控制分系统计算机为下位机.星务中心计算机发送轮询控制序列,被选择的从节点收到后,向星务中心计算机发送信息数据包.星务中心计算机接收数据校验正确后,本次轮询应答过程结束[2].下位机CAN应用软件设计为帧中断接收、发送方式.当SJA1000接收到来自CAN总线上的一个有效的报文后,系统将在INT引脚上产生一个硬件中断信号(低有效,接收中断).此时应用软件进入接收中断接收星务数据;应用软件将应答第一帧写入发送缓存器并置位命令寄存器的发送请求TR标志,使能SJA1000发送后退出接收中断,在总线数据发送成功时CAN控制器会产生下一个发送中断.CAN中断寄存器的状态[5]如表1所示,其中D1位(发送中断)当发送缓存器状态从逻辑0到逻辑1(释放)后,发送中断位被设置为1,D0位(接收中断)当接收缓存器状态非空,接收中断被设置为1.CAN总线的帧中断(包括接收和发送)经过FPGA处理进入CPU中断后,应用软件需要在中断处理函数中分别查询CAN1和CAN2中断寄存器的状态,确认是发送中断还是接收中断,并调用相关处理函数.控制分系统下位机中断处理函数的流程如图4所示.
1.2总线数据接收程序设计
在控制分系统下位机的中断处理函数中,如图4所示,若查询中断寄存器为接收中断,则调用接收函数.下位机需要接收星务发送的单帧/多帧数据,并根据协议发送单帧/多帧应答数据.根据协议,星务单帧发送,控制分系统下位机单帧/多帧应答.星务多帧发送,控制分系统下位机单帧应答.对于广播数据(单帧或多帧),则只接收,不应答[2].控制分系统下位机采用帧中断接收、帧中断发送方式,所以在接收星务多帧发送数据时,需要多次进入CAN总线接收中断,多帧数据接收完成并通过校验后,才能发送应答数据.同样,在控制分系统计算机发送多帧应答数据时,也要多次进入CAN发送中断,多帧数据发送完成后,结束发送.从图5可以看出,控制分系统下位机单帧应答和多帧应答的第一帧是在CAN接收中断中完成的.
1.3总线数据发送程序设计
当发送缓存器中的一帧数据在总线发送完成后,SJA1000会产生发送中断,只有需要发送多帧应答数据时,才会利用发送中断发送后续数据.当控制分系统下位机接收星务轮询(单帧),需要应答多帧数据时,在接收中断中(如图5所示)写入需要应答的第一帧数据到发送缓存器,启动发送请求后,退出接收中断.每一帧数据发送完成后,会产生发送中断.如有后继帧数据需要发送,在后继发送中断中将后继帧数据写入发送缓存器,启动发送请求后,退出发送中断.最后一帧数据发送完成后,直接退出发送中断,完成本次轮询.
2在CAN总线并发通信情况下应用
软件设计在图3中,主节点只有一个星务计算机,但是在某些系统中(如图3虚线部分所示)GPS接收机能以主节点方式广播整秒时间数据(单帧数据),和星务计算机完全异步,并可能同时出现在CAN1和CAN2总线上[7].在两个主节点同时发起通信的情况下,可能会产生如图6故障时序.图6中由于①或者④事件的发生,假设①比④靠前,通过FPGA运算,CAN_INT在⑥产生上升沿,根据软件设计,CAN_INT设置为上升沿触发中断,因此CPU在此时刻登记(PENDING)CAN_INT.假设CPU在⑦时刻进入CAN的中断处理函数,根据软件流程,在②时刻读CAN1的中断状态寄存器,因为CAN1发生中断,所以进入CAN1中断处理分支,在⑤时刻读CAN2的中断状态寄存器,因为CAN2发生中断,所以进入CAN2中断处理分支,最后在⑧时刻退出中断.但是由于某种条件的存在,⑤事件发生之前产生了③事件,这样导致CAN_INT在⑥时刻产生有效的上升沿后一直为高电平,致使在⑧时刻退出中断后无法产生有效上升沿,从而导致无法进入CAN中断.导致上述故障模式发生的两个条件:1)两个CAN必须都产生中断,而且④必须发生在②之前.如果GPS和OBDH各占用1个通道,这样的条件是很容易满足的.2)③必须发生在②与⑤之间.在连续接收多帧数据的情况下,如果在⑥和⑦之间发生了其他高级中断,导致⑥和⑦之间的时间较长,则多帧数据会存储在SJA1000的接收FIFO中;如果在②和③过程中释放接收缓存器,SJA1000就会立即产生接收中断;在连续发送多帧数据的情况下,如果在②和③之间发生了其他高级中断,导致②和③之间的时间较长,则1帧数据发送成功后会立即产生发送中断.
2.1总线中断处理程序重新设计
虽然控制分系统下位机外部中断可能丢失,但是SJA1000的中断寄存器的状态仍然可以查询,所以在中断处理函数设计中,通过重复查询表1中断寄存器的状态,避免控制分系统下位机外部中断丢失情况.重新设计的流程图如图7所示.
2.2总线数据接收程序重新设计
当GPS秒脉冲校时广播数据在多帧接收或多帧发送之间到来,原应用软件记录的帧序号发生错误,导致本次接收/发送通信失败.因此需要将GPS秒脉冲校时广播数据单独处理,即在图5接收程序读取CAN接收缓存器接收完本帧数据后,软件不再将发送帧序号清零.在A分支中,若识别为单帧数据且是GPS秒脉冲校时广播,只记录数据内容,不置发送帧序号为零.若识别为单帧数据且需要应答单帧或多帧数据,增加帧序号清零.
3结论
国内小卫星采用CAN总线作为星上网络数据传输总线.为解决主节点(星务)CAN总线与控制分系统计算机采样自身下位机如各种姿态敏感器和执行机构之间的中断及通信冲突的矛盾,控制分系统下位机采用了中断接收、中断发送的方式.针对接收主节点(GPS)数据引起的CAN并发通信中断冲突的问题,应用软件在控制分系统计算机外部中断程序处理中多次查询CAN中断寄存器,同时在CAN接收程序中识别不同的主节点数据,解决了两个主节点情况下CAN总线的通信问题.对于可能出现的两个以上主节点的情况,同样可以通过重复查询CAN中断寄存器的状态,避免CAN总线中断丢失.CAN接收程序需要根据具体的协议层数据协议重新设计.控制分系统下位机CAN总线通信应用软件设计,已经形成标准的软件模块,在多颗小卫星实际应用,满足总体提出的各项性能和功能指标.
作者:谢晓兵 董筠 周新发 李鹤 单位:北京控制工程研究所
1并发服务器的算法
将并发引入服务器中的主要原因是需要给多个客户提供快速响应时间。如果构造要求有相当的I/O时间的响应的情况下,允许服务器并发地计算响应意味着,即使机器只有一个中央处理器,它可以部分重叠地使用处理器和外设。当处理器忙于计算响应时,I/O设备可以将数据传送到存储器中,而这可能是其他响应所需要的。如果各个请求所要求的处理时间变化很大,时间分片允许单个处理器处理那些只要求少量处理的请求,而不必要等待处理完那些需要很长处理时间的请求。如果服务器运行在具有多个处理器的计算机上,服务器在具有多个处理器的计算机上并发执行,这可以允许一个处理器为一个请求计算响应,而同时另一个处理器为另一个请求计算响应。
2并发的、二种连接服务器的算法
并发无连接服务器的最简单的版本遵循着主服务器线程接受传入请求(数据报)并为处理每个传入请求而创建一个从线程(可能在一个新进程中)。尽管创建一个新线程或进程的精确开销依赖于操作系统和下层的体系结构,但这个操作可能是非常昂贵的。在无连接协议中,我们应该考虑到并发性的开销与速率上的获益谁更大。其实,由于创建进程或线程的昂贵性,在无连接服务器中很少使用并发实现。面向连接的服务器在多个连接之间(而不是在各个请求之间)实现并发性。在很多情况下,服务器与客户之间的连接将处理不只一个请求:协议允许客户重复地发送请求和接收响应,而不必终止这个连接或重新创建连接。并发服务器使用着面向连接协议的特定步骤:主服务器线程接受传入连接,并为每个连接创建一个从线程或进程以便对其进行处理。从线程处理完毕后,它就会关闭这个连接。
3如何获得表面上的并发性
由于某些操作系统创建线程或进程的开销非常昂贵,以至于服务器无法承担为每个请求或每个连接创建一个新线程或进程的重担。因此,使用单个执行线程来处理客户的请求也很有意义。更加重要的是,很多应用都要求服务器在多个连接中共享信息。尽管可能通过共享存储器的线程达到期望的并发性,但如果出现在服务器中的全部请求没有超过服务器处理它们的能力,那么可能会获得表面上的并发性。为此,服务器作为单个执行线程来运行,使用select系统调用进行异步I/O。单线程服务器要处理多个连接所要采取相应的步骤:服务器线程等待下一个准备就绪的描述符,这个新的描述符意味着一个新的连接到达,或是某个客户在已有的连接中发送了一个请求。
4并发服务器死锁的问题
服务器死锁是许多服务器实现都有的一个共同缺陷。当操作系统不能满足一个系统调用时,会因调用程序的阻塞而产生死锁。如果客户不能正常工作是由于不能处理响应,那么服务器也有可能会以一种更加微妙的方式产生死锁。如果服务器使用了与客户通信时可能会阻塞的系统调用,一个不能正常工作的客户可能会引起单线程服务器死锁。在服务器中,死锁是一个严重的问题,因为它意味着一个客户的行为会使服务器不能处理其他客户的请求。
5结束语
为达到有效性,服务器往往通过同时处理多个请求来提供并发服务。面向连接的服务器为处理每个新连接创建一个线程或进程,它通过这种方法,在各个连接之间提供了并发性。无连接的服务器通过为处理每个请求而创建一个新线程或进程而提供并发性。但如果是一个单线程实现,且又使用了同步系统的调用,那么它就可能会被死锁。
作者:王立静
1安全软件的功能分析
根据Android的特性及安全现状,可从功能性需求和非功能性需求对安全软件进行分析。就软件功能需求来看,主要包括查看网络流量信息,其需求时序为:用户点击进入检测界面获取系统应用信息调用数据库查询流量信息并返回处理数据并将其展现在界面上反馈给用户;检测和处理恶意软件,其需求时序为:点击进入检测界面将检测结果传送给处理模块存入数据库并返回给用户;控制软件权限细粒度,其需求时序为:在用户进入管理界面前初始化配置用户进入管理界面后获取配置信息对数据信息进行处理并显示给用户重新配置权限并将信息存储到数据库将更新后的数据显示给用户界面;短信和来电过滤设置,其需求时序为:根据短信或来电数据初始化数据库过滤短信和来电号码将拦截下来的信息存入日志数据库并将过滤结果反馈给用户。就软件非功能需求来看,主要包括性能需求、数据库需求和外部接口需求等内容,在此不作过多列述。
2安全软件设计及实现
2.1恶意软件检测模块设计及功能实现
恶意软件检测和处理功能需要网络流量信息监测、异常识别、响应处理以及关键信息存储等模块的相互配合来实现。其一,网络流量信息监测模块的设计,为提高流量信息捕获效率,将该模块放置于Linux内核中,采用LKM开发模式,开发流程如下:模块初始化(钩子函数注册和初始化)关闭模块(钩子函数注销及模块卸载)编译内核模块;其二,异常识别模块的设计,根据Android移动终端的特点以及恶意软件对该系统流量信息的影响情况,采用SVM分类算法,通过构造特征向量,提取进程ID、数据包发送/接收时间、上/下行流量、源/目的IP地址等特征来反映系统网络流量的特征,再通过Netlink方式从监测模块中获取待识别数据,改进交叉编译后移植给Android平台;其三是响应处理模块设计,根据安全策略对被检测软件进行相应处理,主要包括对访问通信录、恶意软件联网、发送和读取短信等权限进行控制,将可疑信息上传云储存服务器供监测系统分析使用。
2.2深度短信和来电拦截模块设计及功能实现
深度短信和来电拦截功能需要短信和来电过滤与关键信息存储模块的相互配合来实现。其一,短信和来电过滤模块的设计,该模块在Android的Framework层进行开发,通过修改系统源码来添加短信和来电拦截功能,短信和来电过滤模块的函数调用流程如下:初始化时序通知函数调用时序监听注册函数时序过滤处理函数调用时序;其二,关键信息存储模块的设计,按照设计的数据库表来创建数据库,主要包括模型数据表、训练数据表、关键信息表、权限管理表、操作日志表、过滤表、信任名单表、模块设置表和安全策略表,对外提供数据库表的操作接口,接口定义在DBsql。
3结论
Android智能终端的广泛应用,人们对来自Android平台的各类安全问题越来越重视,提出针对Android终端的安全防护解决方案,设计Android平台下基于流量监测的安全软件,具有一定的指导意义。
作者:肖贺
1通过FPGA实现软件设计的仪器
测量领域的另一个重要突破是基于FPGA的测量硬件的出现。未来,传统意义上的“仪器”将不再是功能单一的测量设备,而是演变成测量系统,认识到这一点是非常重要的。此外,工程师们正在寻求的不仅是设备测试仪器,而且还包括用于设计和原型更大型系统的仪器。FPGA这一重要技术将下一代仪器的性能推向一个新的高度。FPGA提供了出色的处理能力,如图1所示。由于FPGA的出现,现在硬件可实现基于软件的测量功能。目前许多射频仪器采用功能固定的FPGA来执行平整度校正、ADC线性化、IQ校准和数字下变频等任务。NIPXIe-5644R矢量信号收发仪(如图2所示)等软件设计的仪器以一种全新的方式受益于FPGA技术,因为FPGA可帮助用户实现定制化。例如,将仪器控制和决策任务从PC转交给FPGA可以大大减少复杂测量系统的测量时间。此外,该功能与先进的基于FPGA的信号处理相结合,可使仪器应用于更广泛的嵌入式应用。
2系统设计软件:软件设计仪器的核心
如果要将计算和测量技术集成到当今的模块化硬件中,正确的系统设计软件工具是不可或缺的。LabVIEW已经从仪器控制软件演变成一个全面的系统设计平台,使工程师能够创建复杂的高性能测量系统。工程师可以在处理器和FPGA上使用一套通用的工具和语言开发应用,从而无需掌握不同的语言和工具。LabVIEW提供了更高层次的系统级抽象,这也使工程师能够实现更底层的优化来满足非常高的性能需求或其他复杂需求。
3多模式RF设备特性化
美国高通创锐讯公司在测试新的802.11ac产品时,需要在比以往更多的操作条件下测试其设备,从而导致测量复杂度大幅增加。使用基于FPGA的NI矢量信号收发仪和LabVIEW后,他们设计的测试系统可实现数字DUT控制与RF测量的同步。该测试系统大大降低了整体测试时间,使得工程师能够在多种工作模式下观察设备的行为。从图3可以看出,传统的测试仪器(左)仅可获得一组迭代测量数据。由于测量非常耗时,测试工程师不得不选择部分工作点来进行特性研究,从而导致实际上只能大致猜测设备的工作特性。但是,通过采用基于FPGA的仪器方法,他们将测量性能提高了200倍,能够在单次测试扫描中采集所有模式下的30万个点数据。图3中的右图显示了所得到的特性曲线图,提供了更多有关该设备的信息。
4嵌入式应用的仪器
软件设计仪器的第二类应用是嵌入式通信和信号处理。过去我们通常认为仪器就是测量设备,但是模块化软件设计的仪器却可让工程师将射频仪器应用于嵌入式领域中。今天,越来越多的工程师正在使用模块化PXI仪器进行嵌入式应用开发,比如频谱监测、被动雷达系统(类似于图4中的系统),甚至是通信系统的原型设计和软件无线电。这些应用需要仪器更加小型化、模块化,并且能够更好地访问确定性信号处理终端。通信系统设计软件必须能够抽象日益复杂的系统,使工程师能够发现新的通信算法并在处理器和FPGA上部署算法。
5RF设计和测试的未来展望
软件设计的仪器以前所未有的程度模糊了设计和测试之间的界限。其中一个更可行的方式是在设计和测试之间共享IP——无论该IP是在处理器还是在嵌入式FPGA上运行。借助LabVIEW等系统设计软件,工程师将能够使用统一的工具来创建新的通信协议,并将协议部署到基于FPGA的硬件上进行原型开发。今天,由于开发算法所使用的数学软件和设计工具种类繁多,实现这一目标变得非常具有挑战性。如果要使工程师完全实现设计、实现与测试之间的无缝过渡,则多个计算设计模型之间的更高层次综合和集成是必须的。最后我们注意到在测试和测量领域,软件已经不再是最初用于实现各种独立式仪器自动化的简单工具。相反,软件已经成为仪器本身的核心——使得仪器能够解决测量和系统设计中更高难度的挑战。实际上,自动化已经成为工程师应对复杂测量需求时一项必不可少的功能。当前的软件设计测量系统仅仅是一个开端,未来它们将彻底改变RF设计和测量。
作者:Mike Santori
1主程序设计
本设计主程序主要完成的目的有:将系统初始化,定义单片机的I/O控制寄存器,芯片配置寄存器,中断控制寄存器定义等。数据采集程序系统将A/D采样设计为外部中断处理程序,并且设置为中断最高级别就是保证采集记录为重要地位。AD采集流程如图2:数据处理程序具体的流程图3:
2通讯程序
本系统的通讯系统包括RS485通讯和USB接口与优盘之间的通讯。串口和上位机之间的通讯,设置为中断法通讯即当控制中心计算机发出对微机记录仪进行通讯命令请求的时候,CPU在没有其他高级中断在执行的情况下,中断当前正在执行的程序,来响应控制中心计算机的通讯要求。和USB之间的通讯设置为移位寄存器方式即有CPU在扫描到有键盘输入命令后,在没有任何中断程序执行的情况下,立即进行将历史数据存入优盘的工作。和上位机的通讯波特率在本系统中设置了2400,4800,9600和19200四种通讯特率。用户根据自己的实际情况可以选择不同的波特率进行通讯。由于单片机的波特率由16位寄存器(BAUD_REG)中的内容决定,具体的公式在前面已经讲过,在实际运用时BAUD_REG取值的最高位为1,表示选用XTAL1作为频率源,低15位才是计算的波特率值。设置好工作方式和波特率后在单片机中还必须明确一下几点:使用串口发送数据时,首先要将IOC1.5设置为1,表示选择了TXD/P2.0引脚的TXD功能,在接收的候,应将SP_CON寄存器REN设置为1,即选择RXD/P2.1。波特率寄存器BAUD_REG在片内特殊功能寄存器(SFR)区域内虽然用同一个字节地址(0EH)表示,但实际上它是16位寄存器。因此,在设计串口波特率时,应将波特率常数用字节传送指令分两次写入片内0EH单元中。直接读SP_SATAT寄存器时,TI和RI标志读出后都会被清除,为了避免这一点,可对其进行间接读出,例如先把寄存器中的内容拷贝到某个通用的寄存器中,然后在判断此寄存器中TI和RI对应状态位的值即可。串口发送和接收中断共用一个中断向量,因此进入中断服务程序后要进一步的测试SP_SATAT寄存器的内容,确定系统是需要发送还是接收。进行USB接口程序的通讯时首先要从新对单片机进行串口设置,将串口方式设置为0,即串口既可以送出数据又可接收数据。ORBIOC1,#20H;选择P2.0引脚的TXD功能。LDBBAUD_REG,#01H;波特率低字节。LDBBAUD_REG,#80H;波特率的高字节,波特率设置为1.5Mbps。LDBSP_CON,#00H;方式0,关接收,不检测。然后就可以向USB接口模块实现数据传输.当USB接口模块之间的通讯结束以后立即将通讯方式设置1为中断方式,即保持与控制室接收信号的状态.进行上下位机之间通讯的时候前单片机设置为:ORBICO1,#20H;选择P2.0的TXD功能。LD30H,#低字节波特率存放地址。LDBBAUD_REG,[30H];将30H中对应地址位中的波特率低字节取出存放在波特率寄存器中。LDBBAUD_REG,#80H;波特率的高字节。LDBSP_CON,#09H;方式0,关接收,不检测。LDAX,#中断向量地址。STAX,200C[0]STBSBUF,20H;清串口缓冲器。LDBINT_MASK,#40H;允许串口中断。当有控制信号发来的通讯请求时自动实现了接收中断,发送的时候还是采取查询的方式。
3结论
根据以上理论依据设计出的微机记录仪运用效果很好,证明了设计的合理性。同时可以通过对信号采集、信号处理、软/硬件设计的加强,提高微机记录仪在现场工作的稳定性、可靠性和先进性。
作者:谭荆 单位:重庆工商大学计算机与信息工程学院
1初始化设备
初始化通讯端口与数据结构是设备初始化的核心。UHFRFID读写器核心模块采用串口与USB2.0通讯,将通讯端口设置为自动搜索连接。串口通讯波特率为115200波特率,无检验位,数据位为8位,停止位1位。UHFRFID读写器核心模块的串口工作状态,是通过串口命令改写模块ARM7芯片中寄存器的值来控制的。通过对串口发送结构体数据完成MAC寄存器的值修改操作。设计结构体如下:structpc_reg_req{INT16Uaccess_flg;INT16Ureg_addr;INT32Ureg_data;};结构体共8个字节,3个成员变量。其中,ac-cess_flg是MAC寄存器读写标志位,0x0000为读操作,0x0001为写操作;reg_addr是MAC寄存器地址,不同的地址代表着不同的读写器功能;reg_data对应MAC寄存器地址的值,不同的值,对应读写器相应功能中不同的状态。完成了UHFRFID读写器核心模块的通讯端口初始化与结构体初始化之后,必须对模块进行天线配置,才能使模块进入四天线工作模式。
2天线参数配置
使用UHFRFID读写器核心模块天线,必须对所有天线的参数进行配置,天线参数数据结构如下:在天线参数结构中,定义了物理天线号、天线功率和延迟时间等天线工作必须参数。在使用天先前必须对天线的参数逐个进行赋值,然后才能进行天线工作模式配置。
3配置天线工作模式
UHFRFID读写器核心模块采用了Impinj公司R2000芯片配套固件,设备上电初始化后默认双天线工作,设置四天线工作模式,必须通过修改OEM寄存器值使能4个天线端口。地址为0x00000087的OEM寄存器控制天线使能。寄存器值如表1所示。由表1可知,使能四天线,必须将OEM寄存器地址为0x00000087的区域值设置为0x00000000。
4四天线轮询访问标签
天线轮询访问标签软件流程如图3所示。使能四天线之后,可在任一时刻选用任一天线进行标签访问,在某一个天线对标签进行访问期间,必须关闭其他天线的使能。天线在工作期间,会自动搜索匹配使能的天线。如果多个天线同时使能,则读写器核心模块始终会使用最小号天线进行标签访问。采用四天线轮询访问标签,必须根据访问标签的数量设置天线轮换时间。如果标签较多,天线轮换频率过快,则标签读取率低;如果标签较少,天线轮换频率低,则会造成时间的浪费。依据每个天线访问的最大标签数量,选取天线轮换时间。
5测试与应用
UHFRFID读写器核心模块射频前端工作在925MHz,使用频谱测试仪对软件配置结果与硬件设计进行测试,测试结果如图4所示,横轴为输出频率,纵轴为射频前端输出功率。由图4可以看出,UHFRFID读写器核心模块工作在925MHz时,输出功率为31.6dBm。使用UHFRFID读写器核心模块对2个标签进行轮询访问,实际访问率达到100%。经过测试与现场应用,四天线UHFRFID读写器模块核心软件能有效地控制读写器核心模块对标签进行准确访问。
6结束语
四天线UHFRFID读写器模块核心软件能够有效控制四天线UHFRFID读写器模块,有效读取远、近距离标签数据,读写范围广,标签读取率高。较以往双天线读写器模块而言,四天线读写器软件更智能,并且能够控制使用多个天线进行标签访问,增加了读写器覆盖范围,标签读取率也有显著提高。四天线UHFRFID读写器必将成为RFID读写器核心模块设计趋势,四天线读写器核心模块控制软件将会有非常广阔的应用前景。
作者:陶怡 张亚军 胡建晨 单位:西安航天自动化股份有限公司
1硬件设计
1.1DSP芯片
本文所选用的DSP芯片为TMS320C6713,其时钟频率高达300MHz,是浮点运算能力最强的一款32位高速浮点型DSP芯片。HPI-16是HPI接口的升级增强版,是该芯片的主机口,最重要的特征是DSP的整个片内空间可以被主机访问。HPI接口与主机的数据通信主要通过HPI控制器(HPIC)、地址寄存器(HPIA)、数据寄存器(HPID)和HPI内存块来实现。
1.2USB芯片
本文所采用的USB芯片是CYPRESS公司的EZ-USBFX2系列芯片CY7C68013,特点是主机上就存储这其芯片固件,这样容易使代码直接通过网络升级。它的休眠模式比较特殊,具有低功耗的效果,减少资源的损耗,有利于更好的保护器件,避免长时间通电遭到损坏。2.3硬件电路连接本设计采用CY7C68013-128PVC与TMS320C6713的HPI模块接口相连接,工作模式设置为GPIF模式。
2软件设计
2.1USB固件程序设计
固件程序的开发环境选择KEILC51。固件函数库提供了许多函数,该函数都与USB协议相关,可以在不熟悉USB协议的情况下,利用固件框架进行所需功能的程序编写。寄存器初始化、电源管理、重枚举等功能已经设计完整,可以直接使用。整个执行过程是一个相对简单的循环过程。第一步,优先初始化内部变量;然后,调用TD_Init()函数进行寄存器的初始化工作;TD_Init()函数执行结束之后,使USB接口处于位配置状态,并开中断,检测端口0是否接受到一个SETUP包,否则端口0执行延时重枚举操作。初始化函数TD_Tint()函数负责完成初始化芯片的寄存器,设置适当的参数,通常在固件运行时开始调用。
该函数首先CPUCS寄存器进行初始化操作,设置48MHZ的时钟频率;然后分别配置端点2作为IN输入bulk状态、端点6使其工作于OUT传输状态,而端点4、8暂时没有使用,所以设置为无效状态;之后调用GpifIint()函数,以初始化GPIF的相关寄存器,进入工作模式。调度函数TD_Poll()函数在固件代码中循环执行,以负责完成用户指定的功能。该函数首先判断检测传输是否完成、CY7C68013的GPIF的接口是否处于空闲、端点2缓冲区是否为空闲状态,当这些条件均成立时,将马上启动GPIF写传输。另外,在USB高速传输状态时,GPIF能够一次读取4096字节的数据,适合处理庞大的数据;而在USB全速传输时,GPIF一次只能读取64字节数据,处理速度比较慢,适宜处理数据量比较小的情况。TD_Suspend()函数,从固件框架中可以看出,该函数只有在USB处于空闲状态是,才执行。在例程当中,只有简单的一句returnTRUE代码,开发者可以根据实际需要,添加相应的代码以完成相关的功能,还可以配置设备的工作状态,一般设置为低功耗状态,以减少对电源的消耗,其最终结果返回真值,反馈给用户。TD_Resume()函数,当执行完TD_Suspend()函数之后,若返回的是真值,程序会进入挂起状态,然后开始执行TD_Resume()函数,该函数也只有returnTRUE一句代码,当外部需要执行唤醒中断或者USB总线需要执行数据传输等操作,就会对处理器进行重新启动,开始下一个循环。
2.2应用程序设计
使用LabWindows/CVI支持的VISA的库函数和堪比VC++的控制件库能够轻松设计出美观且符合用户要求的应用程序界面。用LabWindows/CVI设计的应用程序界面,。按钮是界面设计中常用到的控件,该应用程序主要由打开设备、复位和程序下载三部分组成。
3总结
本文设计了USB接口与DSP系统的结合使用,设计出一套基于USB接口的DSP程序下载软件,提供了一种新的数据传输解决方案。总体上,整个软件基本能完成打开设备、复位和代码下载的功能。
作者:蓝雷波 毕艺飞 莫锦河 单位:中国海洋大学信息科学与工程学院
1线测试设备硬件结构
该测试系统采用一台工控机作为测试控制主机,工控机具有网络端口、GPIB板卡、RS485串口卡以及继电器板卡。按照测试工作流程,依次与GPIB测量仪器、网络示波器、串口测试设备等进行通信,分时控制这些设备进行数据采集和测试,然后从这些不同总线设备获得测试数据后进行数据处理和分析达到测试目的,其硬件主要结构如图1所示。
2线测试设备软件结构
软件采用C/C++语言编程,软件总体结构。软件主要功能包括:设备自检、设备参数设置、自动测试控制、波形显示及数据处理、参数回放及打印等功能。设备自检部分主要完成继电器板卡及通道自检、GPIB板卡端口及设备通信自检、与网络示波器通信自检以及串口端口自检等功能;设备参数配置主要完成测试记录(测试设备编号、测试项目、操作人、测试时间等项目)填写、按照不同试验项目选择不同的测试项目、预先设定测试项目阈值用于作合格判据;自动测试控制程序部分采用了多线程设计技术,将测试流程里的测试项目作为串行处理测试节点,按照测试流程分时完成各测试节点的通信测试;波形显示及数据处理部分将读回的示波器波形进行显示,将读回的数据进行处理获得最大值、最小值和均值,将每次测试记录填写到由CBCGP⁃GridCtrl派生的Grid控件表格,最后输出数据到报表中;参数回放部分与Grid控件联系紧密,参数回读后数据显示在Grid控件表格,通过点选Grid控件中的每次测试记录,将对应的每次测试存储记录包括波形和数据进行回放,并能通过报表进行参数打印。
3线测试设备关键编程技术
3.1读GPIB设备编程技术
通过GPIB总线接口设备可以对快速测量信号或高压信号进行测试,这里采用数字万用表3410A通过GPIB总线接口设备完成测量任务,测试系统软件首先申明GPIB端口地址等属性,打开相应端口地址后,通过自检GPIB⁃IEEE488.2通信接口查询找到对应的GPIB设备。在自动测试流程线程,当程序运行到GPIB参数读取测试节点时,测试系统软件将测试数据从GPIB测试设备读回,通过Windows窗口消息机制返回到窗口界面显示测量数值。
3.2读网络示波器编程技术
通过示波器设备可以直接对测量信号进行精细化测量,可以达到纳秒级的测量精度,测试设备采用泰克DPO4054B示波器进行测量。软件设计时在头文件中包括了Visa.h头文件,在库链接中链接了Visa32.lib库文件,同时结合AgilentIOlibary接口库软件,运用Visa编程技术,查找到TCP网络示波器后打开示波器进行通信。软件启动后通过自检网络查询找到对应的示波器设备,在自动测试流程线程,当程序运行到示波器参数读取测试节点时,测试系统软件将测试数据从示波器读回,随后运用一定的算法处理数据,可以获得示波器无法直接测量的数据值。
3.3RS485
总线串口编程技术软件串口编程技术比较成熟,通常设计方法为应用程序开启即打开所有串口,在应用程序退出时关闭所有串口,不推荐在应用程序内不停打开或关闭串口,这样存在与硬件兼容性的风险,也不容易排除故障。本应用程序在设备自检打开端口后,在自动测试流程线程,当程序运行到串口设备参数读取测试节点时,通过读/写串口端口完成数据读/写。
3.4界面设计编程技术采用
BCGControlBar界面库设计软件总体界面,软件显示采用OutLook模式,左侧一列显示主窗口操作按钮,按钮操作允许对设备进行自检;在测试界面和报表显示界面进行切换;进行参数设置及参数回读操作。软件居中采用ProEssentials绘图软件控件设计波形曲线窗口,既可用于测量时显示波形曲线,又可在参数回读时显示波形曲线。软件右侧采用基于CBCGPGridCtrl类派生基类生成的参数报表,可以用于显示每次实验数据。每做完一次试验则在报表显示一列数据,记录一次试验波形数据,方便使用者在一个时间段观察试验记录。
4软件可靠性设计
测试系统软件设计中采用了一定的可靠性设计方法保证测试设备的软件健壮性,首先在软件启动的自检阶段确保与所有端口设备连接正常并通信正常,确保后续自动测试流程前软硬件通信正确无误;软件采用Windows消息机制,避免线程内对Windows窗体进行操作;对返回的波形数据软件采用一定点数的平滑滤波处理技术,防止读回的数据异常影响软件边界。
5结论
经过实验验证,该测试系统软件可以很好地完成连续性试验任务,能很好的适用于实时性要求不高但需要连续测试记录的试验场合。证明采用多线程分时控制技术可以很好地将多种总线接口测量设备结合在一起测量不同类型的信号,从而达到一个测试系统完成多种测量任务的目的。
作者:林立杰 耿涛 单位:中国工程物理研究院
1计算机系统工程方法的内容
1.1系统工程方法的概述
系统工程方法作为现代科学决策方法,主要将相关问题及情况分门别类,确定边界,侧重各门类之间内在联系,确保处理方法的完整性,采用全面和运动的观点、方法分析主要问题及整个过程。其具有综合性、科学性、实践性等特点。利用系统工程理论指导软件开发和维护,主要使用工程化概念、原理、技术及方法开展软件开发、维护的工作。当前,软件开发方式主要存在三种方式:自顶向下的结构化方法;基本要素为对象、类、继承等的面向对象方法;简单的形式化方法。采用系统工程方法是用系统的原理、方法研究系统的对象,立足整体系统,制作出科学的工作计划及流程,有效地完成任务。
1.2系统工程方法的基本内容
系统工程方法依从系统全局观点,从系统与要素、系统与环境之间相互联系、相互作用出发研究相关对象,实现最佳处理问题的目标。其基本内容有:全面调查研究有关资料和数据,提取有效信息,系统了解相关问题信息,进一步确定完成任务所需条件;提出相关方案,展开定性和定量的理论分析,进而进行实验研究,客观评价系统技术性能、经济指标,注重社会效果,为最终方案在理论和实践上做铺垫;经由系统分析与综合,比较和鉴别出最优系统设计方案进行实施;依据系统设计方案,制定有效计划,将开发研究出的系统投入使用,并对系统的性能、工作状态及社会反应作出相关评价和检验。
2系统工程方法在计算机软件设计中的应用
2.1提出任务
计算机软件开发交办单位针对软件开发系统向开发人员提出要求,布置相关开发软件任务。在提出任务阶段,交办单位下达任务书,并与开发人员签订合同,同时,对项目有直接管理权限。开发人员需对任务书认真研究、分析其内容。
2.2论证和批准
开发人员对需开发的软件系统进行可行性研究,从而提出有效方案,后由专家学者做评审工作,并通过主管部门的批准,再进行系统的开发工作。这是软件系统开发的首要前提,需开发人员经过精心搜索有用信息做储备资源,调查市场行情,综合考虑经济可行性、技术可行性以及法律可行性等问题。
2.3需求分析
可通过网上调查问卷的形式,了解用户在软件系统方面的期望,从而对开发软件系统的功能、性能、运作速度、设计限制等进行总体分析,制作出严谨的规格说明书,以支持后续软件的开发进程。
2.4概要设计与详细设计
软件的概要设计与详细设计是软件开发的重中之重。软件概要设计依据上述准备工作,建立起目标系统软件的整体架构及总体结构与模块间的互相联系,设计完整的数据结构,从而定义各接口和控制接口。同时需要对相关部分进行审核。而软件的详细设计则是对概要设试,以便用户使用手册的编写及完善。
2.5成果鉴定与推广应用
最后,开发人员需将开发设计出的系统软件,在用户实际使用环境中试安装,并在责任时间里运行,在通过正式鉴定后交付用户,并提供指导用户使用与在用维护服务。同时,在用户使用阶段,开发人员需关注软件运行进程,并对软件系统进行维护。
3结束语
综上所述,系统工程方法在计算机软件设计方面应用较广,同时起着重要作用。结合系统工程方法的特点,在计算机软件设计阶段可规范其流程,促使计算机软件设计进程加快,同时提高开发人员的工作效率,为软件系统研发速度的提高打下基础。
作者:王应邦 孔春丽 单位:保山中医药高等专科学校
1监控系统组态软件功能
水厂监控系统组态软件主要包括数据采集显示、保存、报表查询和参数异常报警等功能[2],确保值班人员通过组态监控界面实现对水厂各个环节的监控。水厂监控系统功能框图如图2所示。1)数据采集显示功能。水厂监控系统通过与PLC的通信,在监控界面上实时显示数据,使工作人员了解生产环节的情况。2)数据保存和报表查询功能。管道压力、电机电流、水池水位及供水流量等重要数据实时保存在数据库中。报表上显示中心水厂向各分水厂供水流量、管道压力、水池水位及时间等。工作人员能够查询实时或历史数据,为自来水厂的合理生产提供参考。3)参数异常报警功能。水厂生产过程中出现某一环节参数异常时,监控系统能够及时报警,提醒工作人员处理,提高生产的安全性。
2软件设计
2.1系统登录界面
登录界面添加水厂地理位置图像,界面显示整个供水管线的分布。界面左上部分设置“系统菜单”按钮,单击选择下拉项中的“登录”,输入密码进入水厂监控系统。登录界面上设置的矩形框分别代表水源地基站、中心水厂及3个分水厂。单击矩形框进入对应监控界面,如要进入中心水厂监控界面,单击画面中的“中心水厂”矩形框跳转到中心水厂监控界面。矩形框中的蓝色部分高度表示各水池水位情况。
2.2水源地监控
水源地7口机井负责将地下深层水抽取输送至水源地清水池,泵房内3台30kW的变频泵(1台备用泵)从清水池内抽水加压后输送到19km处的中心水厂。主控室值班人员远程监控水源地基站运行状态,负责7口机井的开启/停止、变频泵频率的设定,维持清水池水位处于安全区间。清水池水位的安全区间为1.5m~3.5m,当水位值高于3.5m或者低于1.5m时,值班员停止或启动部分机井,以减少或增加进入水池的流量;同时通过改变变频泵的频率来增加或减小出池流量,维持清水池水位值恢复至安全区间。夏季用水高峰期7口机井24h常开,用水淡季只需开启部分机井。冬季水源地清水池和泵房不需要工作,打开旁路电动阀,关闭主线电动阀,源水从机井抽取通过旁支管道直接送至中心水厂。水源地监控界面上方设置“去井群”按钮,单击进入井群监控界面,如图3所示。界面上显示7口机井泵组电流、电压,水井水位及管道压力等参数。监控人员通过对每口机井的“开启”、“关闭”按钮远程控制机井的启停。使用STEP7MicroWIN编程软件编写PLC程序。图4为1号井PLC与STC-201数据采集程序中的部分梯形图,完成读取从站保持寄存器的数据功能。建议每一个读写功能(即MBUS_MSG)都用上一个MBUS_MSG指令的Done完成位来激活,以保证所有读写请求必须使用脉冲触发。RW位读写操作,0表示读,1表示写。注意:开关量输出和保持寄存器支持读和写功能;开关量输入和模拟量输入只支持读功能。Count通讯的数据个数,Modbus主站可读/写的最大数据量为120个字(是指每一个MBUS_MSG指令)。DazaPra为数据指针,如果是读指令,读回的数据放到这个数据区中;如果是写指令,要写出的数据放到这个数据区中。
2.3中心水厂监控
源水进入中心水厂处理后经管道进入2个1000m3的清水池,泵房中的3台变频泵(其中2号变频泵为备用工作泵)负责将清水池中的水加压供给3个分水厂。主控室值班人员主要负责监控2个清水池水位,变频泵的启停状态、工作电流和分水厂管道流量计的数值等。清水池4m深,监控系统在水位高于3.5m或低于1.5m时报警,值班人员接到报警提示后,手动改变中心水厂变频泵频率,增大或减小自来水出厂流量。同时改变水源地变频泵频率,改变进厂源水流量,使中心水厂清水池水位恢复到安全区间范围。监控界面上显示当前清水池液位值、泵组电流、电压值等参数,并在“历史曲线”中实时显示数据动态曲线[5]。
2.4分水厂监控
自来水从中心水厂出厂分流供给3个分水厂,如图5所示。每个分水厂设置有2个1000m3的清水池。值班人员远程监控各分水厂水池水位,通过控制中心水厂出水量和分水厂电磁阀的启停状态,控制水池水位处于安全区间。
3结语
本文根据组态软件KingView开发周期短、系统配置灵活及可靠易操作等优点,开发了莫索湾水厂自动监控系统上位机软件。监控界面简洁,清晰。运行结果表明,有效地降低了工作人员劳动强度,提高了水厂供水的可靠性和经济效益。
作者:马强 李江全 李彬 单位:石河子大学
1架构设计
该软件采用程序与协议无关的设计思想,将整个软件分割成界面、界面数据接口、数据中间处理模块、通信接口几部分(如图2),减少程序对协议依赖性和相关性。界面程序部分主要完成界面的绘制和图形显示。界面数据接口为需要实时更新和变化的数据变量和数据结构,并与界面上的各种控件相关联,从而实现界面的动态变化和显示。数据处理模块负责完成与各种通信接口的数据交换和处理。通信接口传送的数据为从各种通信方式(MVB、Lonworks、RS485、CAN等)传递过来的原始数据,该数据的传递方式与内容和协议保持一致。上述分层的设计思想,使显示器应用程序与传输协议相分离,不会因为协议的变动而牵涉到界面显示部分程序的修改,从而软件架构更加清晰,也方便后期的维护,增强了软件的可重用性和可移植性。
2软件功能模块
DDU作为司乘人员与机车的人机接口,应全面实时为司乘人员提供必要的信息和更多的帮助来指导司机操作;同时也提供必须的测试诊断信息,有利于司乘人员对机车进行必要的测试诊断,所以在软件设计时,目录结构必须清晰明了,界面设计更加人性化,更加直观。下面从功能模块、界面设计、重要功能模块几个方面介绍该软件。
2.1功能模块
该软件的功能模块主要包括主要数据、维护与诊断、机车设置等(功能模块结构如图3)。主要数据包括机车的一些实时的运行状态信息,如网络模块工作状态、辅助系统状态、主电路状态、手动切除信息、列车状态信息、牵引系统信息、WTD状态数据等;维护诊断模块主要包括轮径设置与校正、实时监测数据(I/O状态数据)、版本信息、系统时间、故障信息、故障处理信息等;机车设置主要包括机车长度设置、低恒速设置、车顶隔离开关设置、2/3功率设置、内燃机控制设置、车次设置等。
2.2界面设计
界面是直观展示机车信息的平台,友好清晰、更加人性化的界面显示方式将对司乘人员提供更多的指导和帮助。界面以黑色为主要背景,本着直观、形象、醒目的原则进行设计,采用图标、数字、控件、图形相结合的显示方式。譬如,在DDUA的主界面上显示相关内容:①利用大小为52×58像素的不同颜色的图标醒目直观地提示机车所处区域的信息(交流区、直流区、分相区)、空转、撒砂、停放制动、故障等级等信息;②通过柱状图动态显示当前编组机车的牵引制动力之和与弓网电压、电流以及本机车的各个电机所发挥的实际牵引/制动力;③通过仪表控件和加速度控件显示机车的当前速度和加速度,并且在低恒速工况下,仪表盘的刻度会随之改变,并同时显示当前低恒速下机车的实际速度和设定速度,使之更加人性化;④在界面底部,实时显示编组机车所发生的最新故障,并用不同底色标识不同等级的故障,严重故障用红色,中等故障用白色,一般故障用白色,在有钥匙信号的条件下,司机也可通过按“ACK“键进行故障的确认。DDUA主界面示意图如图4。在DDUB主界面中,利用控件显示编组中各个机车的当前状况,包括受电弓状态、钥匙信息、当前工况(2/3功率、正常模式、低恒速度)、机车编号、当前发生故障项目缩写等,同时可以通过选择查看具体某台机车所发生的某条故障信息。故障信息显示在界图2软件架构设计面底部的故障信息显示栏,通过控件显示,可以清晰地了解当前编组各台机车的运行状态。DDUB主界面示意图如图5。
2.3重要功能
与国内的其他机车显示器软件相比,该软件增加较多新功能,如编组节点反向、手动切除、手动覆盖、内燃机车控制、主控制校正等。下面重点介绍编组节点反向、内燃机车控制和显示器数据同步功能。编组节点反向功能。节点反向处理逻辑如图6。即在重联编组中,当主控机车为实际编组中最后一台机车时,则需要将整个编组的所有与重联相关的信息进行反向显示(主要包括机车重联编组的状态信息,如故障信息、运行条件信息等),并且当主控车节点变化时(包括编组数量变化与主控车位置变化),首先对先前获取的数据缓冲进行清零操作,再根据当前处理后的节点信息获取数据。内燃机车控制功能。该技术为国内首次应用。通过与内燃机车最邻近的电力机车完成对内燃机车的控制。首先在显示器上完成内燃机车设置,根据当前的实际情况设置内燃机车类型和数量,内燃机车设置界面如图7,在内燃机车设置有效后,根据当前的机车运行工况和各个内燃机车牵引制动特征曲线完成对内燃机车的牵引制动力的计算,并在主界面显示内燃机车相关信息,内电重联主界面如图8所示。显示器数据同步功能。南非机车为单司机室结构,2个DDU设备位于司机控制台正中间(分别命名为DDUA、DDUB),由于2个显示器在网络中所处地位等同,任一显示器都可进行数据设置,而当2个显示器数据不一致时,网络则无法判断从哪个显示器获取数据,此时则需要将2个显示器发送的数据进行同步,保证2个显示器对网络系统发送的数据保持一致。同时由于在其中一个显示器中操作而引起显示器界面发生变化,则需要通知另一显示器,使得另一显示器显示界面发生同样的改变,此时需要对另一显示器发送同步显示数据。例如故障确认,当在DDUA显示器中进行确认,故障显示发生改变后,则需通知DDUB显示器该故障的显示也发生改变。显示器数据同步数据通信流程如图9所示。
3结语
目前南非双流制电力机车有40多台完成无故障考核,已经被南非业主签收并投入商业运行,截至2014图9数据同步流程图年12月已累计运行约61万km。显示器应用软件已在现场完成了各项功能性测试,通过2期共半年的客户验证测试与调试,运行状况良好;该软件架构设计与国内机车相比有明显改进,同时目录结构层次更加清晰,具有友好美观的人机交互界面,受到客户的一致好评。
作者:饶天贵 李宇锋 谭军祥 李锐 单位:株洲南车时代电气股份有限公司
(1)控制要求
系统上电后,风门处于关闭状态,系统周期检测传感器信号,人车运动过程中会触发微波传感器输出信号,系统则根据传感器信号执行开关风门和风门互锁。人车接近风门时,两侧风门的微波传感器检测到有效运动速度信号,首先进行信号竞争,根据竞争结果开启某一风门。2个风门入口信号4选1采取竞争方法进行选择,即微波移动传感器输出信号A1、A4、B1、B4处于竞争状态,一个检测周期内,只有一个信号有效。2个风门各2个方向。
(2)控制策略
控制系统风门互锁的控制要求并不复杂,关键是有效判断风门区域人员车辆的状态,并根据状态进行开闭风门。人员在巷道内行进过程是随意的,系统需要根据人员在微波传感器检测区域内的最终状态,对人员行进完成状态估计。如图3所示,根据人员的位置和传感器有效信号可以把人员行进的状态和风门控制策略分成9种,如表1所示。风门控制策略是控制系统的核心,策略制定的优劣直接影响着风门控制的可靠性。表1中根据人员行进的最终位置分为不同的状态估计,结合定时器对人员状态进行状态估计和制定控制策略。
(3)实现方法
有限状态机(FSM)理论是本风门自动控制系统状态转换和控制策略的理论基础。FSM包含有限的状态,但在任一给定时刻必须而且只能处于其中的一个状态,系统的状态变化受事件的驱动,事件是系统的活动或外部输入信号,它受当前状态约束。因此,研究有限状态机的关键就是在其状态空间中找到状态转换的轨迹,这要求在每个状态下全面分析驱动状态转换的事件(包括系统的活动和输入信号)和转换的目的地(即转换后的状态)。每个状态都有其特定的输出(系统的各项功能和性能指标),即系统状态转换伴随着系统的性能指标随时间的变化。风门自动控制系统的动态特性就是通过状态转换表现出来,巷道风门检测区域内人员行进过程中的每个有效位置都相当于一个状态,在任何时刻风门只能处于一个工况状态,工况间的转换受传感器信号即事件的驱动。当传感器信号满足进入某一工况的条件时,风门立即进入该工况下运行,一旦外部事件不受该工况下条件的约束时,风门立即离开该工况寻找另一个工况。每个风门区域可以作为一个对象,该对象有微波传感器和定时器属性,属性取值为开或关。2个操作开门和关门。根据人车通行过程和风门对象属性值的不同组合,可以把工作流程划分为5个状态:初始态,状态1,状态2,状态3,状态4。用统一建模语言中的状态机视图表达,如图4所示。图4风门状态转移示意图该视图中对不同区域设置不同传感器配合定时器对人车运动状态进行分类。从初始状态开始,当人车运动速度满足最低传感器1阈值接近区域入口时,风门开启,进入状态1,此时开启定时器1;若在定时时间到后区域检测不到信号则判断为人车退出风门区域,返回初始状态;若传感器2信号有效则进入状态2,同时开启定时器2,此时判断人车进入风门,人车的行走不会影响状态的改变,直到传感器3信号有效。状态2和状态3的人员已经进入风门,系统处于等待人车通过风门区域。传感器4有效时进入状态4,此时人车前端已经通过风门,系统等待其他部分通过风门区域。此时如果传感器没有信号则进行短暂延时后关闭风门。下一步就是根据状态机视图为PLC编写梯形图程序了。程序中使用了置位指令SET和复位指令RSET进行状态的切换,有些型号的PLC没有提供置位和复位指令,但都有实现置位和复位指令功能的变通方法,可以根据常开常闭寄存器切换,因此利用该状态机视图编程序具有很好的通用性。
(4)结语
风门自动控制系统采用了最小PLC系统,利用微波传感器信号对人车进行区域状态的信号检测,借助于FSM的分析与设计理论,对人车行进状态进行状态估计和分类,用状态机视图描述风门控制系统的静态结构和动态行为,既提高了风门控制系统的自动化水平,也改善了风门控制系统的可靠性。
作者:武超 赵颖 刘瑞国 单位:山东科技大学 山东省泰安市泰安二中
1车速的采集
车速传感器可以发出一定占空比的方波信号,设计采用单片机的脉冲模块来捕捉可以用来测量信号的周期。车速采集的程序流程如图2所示。步进电机的转动不但代表汽车的行驶速度,还代表节气门的开度,每转动一定角度就相当于节气门的开度。因此,当输入的实际车速A等于目标车速B时,步进电机将不转动;当输入的实际车速A大于目标车速B时,步进电机会反转,减小节气门开度,从而使实际车速降低至目标车速;当输入的实际车速A小于目标车速B时,步进电机会正转,加大节气门开度,使实际车速升高至目标车速,汽车进入定速巡航控制。
2软件可靠性措施
为了提高软件系统的稳定性和可靠性,采取以下措施:(1)封锁。实际系统中最强的干扰来自自身,如被控的负载电机的通断、状态的变化等,在设计软件时应适当采取措施避开这些干扰。如:当系统要断开或接通大功率负载时应暂停数据采集,等到干扰过去后再继续进行;在适当的地方封锁一些中断源;几个通道互相封锁。这些都是避免或减少干扰的有效方法。(2)程序的失控保护措施。在控制系统中,一般情况下干扰都不会造成计算机系统硬件损坏,但会对软件的运行环境造成不良影响。表现在:数据码和指令码的一些位受到干扰而出现跳变,使程序出现错误,最典型的是程序计数器发生跳变,可能把数据当作指令码。这种程序盲目执行的结果,一方面造成RAM存储器的数据破坏,另一方面可能会进入死循环,使整个系统失效。因此,应采取有效措施避免程序失控。
3Proteus仿真验证
3.1定速巡航控制系统总体仿真电路设计
设计中定速巡航控制系统的主要参数是车速值及节气门开度,因为进行实物测试有设备要求,外围设备比较复杂,而且测试结果不够直观,所以设计最终结果通过Proteus仿真来实现。仿真电路如图3所示。Proteus软件的元件库中拥有AT89C52单片机、ULN2003驱动芯片、步进电机等元件,可满足设计研究仿真需要。Proteus软件中的车速采集信号可通过改变脉冲而改变车速,电动机的转速可直观地显示出来,还可体现节气门开度的大小。
3.2试验结果与分析
在Proteus仿真平台上分别对4种情况进行仿真,即实际车速A等于目标车速B、实际车速A大于目标车速B、实际车速A小于目标车速B及实际车速大于120km/h、小于40km/h,仿真结果分别如图4~7所示。从图4~7可看出:当输入的实际车速A等于目标车速B时,步进电机不转动;当实际车速A大于目标车速B时,步进电动机反转,节气门开度减小;当实际车速A小于目标车速B时,步进电动机正转,节气门开度加大;当实际车速A超过120km/h、低于40km/h(即脉冲频率低于100Hz、高于999Hz)时,巡航控制系统会自动退出,步进电机不转动。表明所设计的软件能实现简单的巡航控制系统指令,满足预定要求。
4结语
该文使用AT89C52单片机作为微处理器,通过车速传感器采集实际车速信号,与预先设定的速度进行对比,运用PID控制方法,调节节气门的开度,从而达到设定的车速,使汽车可以恒速行驶;并对所设计的定速巡航控制系统的硬件电路及软件进行了仿真试验,以保证系统设计的可行性与稳定性。
作者:黄宝山 包凡彪 单位:北京理工大学