通用模块(精选8篇)
通用模块 篇1
1引言
一般意义的滤波器指能够使得用户期望的信号通过,而其他信号有较大衰减。时域滤波器的响应H(f)是和频率f相关的,即只能通过一定频率的信号;时域滤波器的响应H(θ)是和空间频率λ-1sin(θ)或者θ相关的,即用一定形状的波束来通过有用方向的信号,抑制不需要方向的干扰,因而又称为波束形成。
数字波束形成技术(DBF)技术是将波束形成理论和数字信号处理的方法结合起来,对DDC(数字下变频)后的基带信号进行处理,形成期望波束的过程。其除了具有数字处理方法对模拟处理方法的优点外,还有比如控制灵活,自适应实现,密集多波束等优点,也被成为智能天线。
2波束形成理论简介
前面介绍波束形成器是一个空域滤波器,其模型如图1所示。
第k个波束输出为:
其中,Wk为要形成的第k个波束的系数,即空域滤波器系数,x(n),y(n)分别为第n个快拍的输入和输出,DBF实现的核心就是完成乘累加。
波束形成主要分类有:常规波束形成,最优波束形成,自适应波束形成,这三种方式的实现都可以通过图1的空域滤波结构实现,三者的不同,只是在于Wk,考虑是否使用通用模块实现数字波束形成。
3实现结构
3.1通用结构提出
对应于图1的结构,能够对应的提出一种FPGA结构,如图2所示。
将图2在设计时结构直观,但是缺点也很明显。
(1)乘法器个数和加法器的个数在阵元不同时,数量不同,不易移植使用。
(2)对于雷达信号,较多使用窄带信号。抽取后数据速率不高,而现在FPGA器件的运行速度远高于采样率,造成资源的浪费。
(3)当阵元数目多时,FPGA资源紧张。
(4)存储系数的系统复杂。为了解决这些问题,合理利用乘法器速度以及FPGA流水处理的特性,提出下面结构,如图3。
其中虚线框为通用DBF模块,并串转换模块主要完成将较低速率的并行数据转换成较高速率的串行数据,使得数据率和器件的工作频率相当,送入不同的波束形成,这样即利用了FPGA的流水特性,又利用了当前时刻采样数据,对乘法器和加法器进行了充分的复用,合理的分配了系统资源。
3.2实现与仿真
通用DBF模块的输入为:累加器的清零信号;每一个阵元对应的权系数;DDC之后各阵元串行数据。其中DDC后每个阵元的I,Q两路数据分别表示实部和虚部。乘法器为XILINX的复数乘法器IP核,对应的累加器应为两个,分别完成实部和虚部的累加。
累加器的清零信号:在完成全部阵元的一次乘累加之后,要进行新的一次乘累加,清零信号在时序上保证单此次累加为全部阵元的和。
每一个阵元对应的权系数:在DBF各种算法中,不同的只是权系数的区别,权系数的存储方式可以多种,但是只要合理的控制RAM或其他存储介质,将对应和权系数与对应阵元的数据乘起来即可。
位截取:定点数运算处理时为避免中间结果数据宽度不断增加,应进行截位处理,仅取出有效数据进行后续处理。截位处理时,截取位置取决于加权系数位宽。例如16位宽度加权系数归一化为2^15-1,则复数乘法结果的实部和虚部分别右移15位(相当于取高位),截位时采用舍入法,能够避免直接截尾引入的直流干扰。
DDC各阵元串行数据:数据率为Fs的M个阵元数据进行DDC后分别存储实部和虚部。M路的并行数据转换为串行之后,速率提高M倍。对于多阵元输入的雷达系统,并行全转串行之后数据率为MFs可能大于乘法器工作速率,可以调用n个通用DBF模块,并在后面后级联加法器,完成全部阵元累加,如图4,将DDC后数据分为n路并行,每一支路内完成并行运算,数据率为MFs/n,即形成串并行结合的形式。
幅相校正功能:DBF体制雷达中,需要有幅相校正的模块,即对每个阵元乘以修正系数,这里不多赘述。
根据具体项目,设计了24阵元的波束形成器,所用FPGA器件为XILINX的virtex-5系列xc5vsx95t,其乘法器的标称主频450MHz,可以稳定工作在200MHz以内,利用matlab产生一组正弦波作为24阵元入射信号,并定点化为18位,同时产生15个导向矢量,在-45°~45°空域等间隔形成15个波束。并将此定点化后的入射信号通过ROM加载在FPGA完成DBF运算,用以验证FPGA实现的正确性,经过运算舍入法截位后得到实虚部各18位信号,保存为数据文件进行分析。
Modelsim下仿真的波束形成结果如图5所示(上为实部,下为虚部)。
FPGA片上运行结果,Chipscope显示如图6所示(左为实部,右为虚部)。
从图5,图6中能够看出,实现的功能基本正确,为了进一步验证形成的波束全部数据的正确性,将数据导出,同matlab的运算结果进行比较。对输入数据利用matlab进行DBF运算的结果(其中进行了hamming加窗)如图7所示;将数据进行定点化后,利用FPGA完成DBF运算的结果如图8所示。
误差分析:FPGA相对matlab的相对误差如图9所示,能够看到,定点相对双精度浮点数的精度误差和截位误差的影响,造成运算的一定误差,但是在可接受的范围内,验证了设计的正确性。
4结论
数字波束合成是智能天线的核心算法,根据波束形成时,只需改变权系数的特性,本文主要讨论了如何设计通用性较强的DBF模块,其核心是合理利用数据率,复用FPGA的IP核资源(乘法器,加法器),大大提高了处理效率,并且在FPGA器件上验证了其正确性。
摘要:波束形成技术是智能天线领域的核心技术,利用各种波束形成算法,根据空域信息来产生空间定向波束,将波束的主瓣对准期望的来波方向。DBF技术(数字波束形成)是天线波束形成原理与数字信号处理技术相结合的产物。本文介绍了一种通用的数字波束形成技术及其工程实现。
关键词:数字波束形成,FPGA,空域滤波
参考文献
[1]龚耀寰.自适应滤波(第二版)--时域自适应滤波和智能天线[M].北京:电子工业出版社,2005.
通用模块 篇2
1.阅读下面这首宋诗,然后回答问题。
野泊对月有感
周 莘
可怜江月乱中明,应识逋逃病客情。斗柄阑干洞庭野,角声凄断岳阳城。酒添客泪愁仍溅,浪卷归心暗自惊。欲问行朝旧消息,眼中盗贼尚纵横。
注 ①本诗约作于北宋灭亡、南宋初建之际。②行朝,指朝廷迁移不定。(1)下列对本诗的理解与赏析,不正确的两项是()A.本诗是一首七言律诗。律诗是一种诗歌体裁,盛行于唐代,属于古体诗的一种,因格律要求非常严格而得名。
B.首联承题,上句切合题目“野泊对月”的内容,下句点明了“野泊”之因:“逋逃”指逃难在外,漂泊无家,故有“野泊”。
C.后人评周莘此诗“最近杜味”。如本诗颔联与杜甫《登岳阳楼》中“吴楚东南坼,乾坤日夜浮”一联都使用了情景交融的手法,境界开阔,情感悲壮。
D.本诗颔联上句写动景,下句写静景。诗人立于洞庭荒野,仰望天空北斗横斜,耳畔传来岳阳城凄凉的角声。动静结合,渲染了空茫凄凉的意境。
E.颈联写了酒化成过客之泪如愁绪滴溅,浪花仿佛卷动归乡之心使人暗自惊叹的内容,与尾联共同表现了“野泊”时所思、所感、所痛。
(2)诗的颈联和尾联分别表达了诗人怎样的情感?请结合诗句具体分析。答:
②
①
2.阅读下面这首唐诗,然后回答问题。
送杨少府贬郴州
王 维
明到衡山与洞庭,若为秋月听猿声。愁看北渚三湘远,恶说南风五两轻。青草瘴时过夏口,白头浪里出湓城。长沙不久留才子,贾谊何须吊屈平。
注 ①若为:怎堪。②青草瘴:《番禺杂编》“岭外二三月为青草瘴”。(1)下列对本诗的理解与赏析,不正确的两项是()A.本诗是一首送别诗,采用虚实结合的手法,实写眼前秋景,虚写别后之景。B.“青草瘴时过夏口”一句,点明送别的时间,说明作者是春天送别杨少府的。C.本诗想象朋友被贬后路途遥远,景物凄凉,山水险恶等种种艰难,表达了对朋友未来命运的担忧。
D.诗中以屈原比杨少府,赞扬了杨少府一心爱国爱民,却无端受冤被贬,表达了诗人的愤愤不平。
E.诗歌借助贾谊吊屈原的典故,把杨少府之才与贾谊相比,肯定了友人的才华。(2)本诗尾联表达了作者什么样的情感?请简要分析。答:
3.阅读下面这首诗,然后回答问题。
九月九日 崔善为
九日重阳节,三秋季月残。菊花催晚气,萸房辟早寒。霜浓鹰击远,雾重雁飞难。谁忆龙山外,萧条边兴阑。
(1)下列对本诗的理解与赏析,不正确的一项是()A.诗题“九月九日”指农历九月初九,中国传统的重阳节,人们用登高、赏菊花、插茱萸
②
①等活动表示庆祝。
B.传统上秋季分为孟秋、仲秋、季秋,分别对应农历七、八、九这三个月,九月已是季秋之月,百花已经凋残。
C.颔联“菊花催晚气,萸房辟早寒”,写晚秋的寒气催落菊花凋零,只能到茱萸的子房去躲避早晨的寒意。
D.古诗写重阳节,多表达欢庆之意,而这首诗的尾联,想到自己身处萧条冷落的龙山边关,全无喜庆之意。
(2)有人说,《九月九日》这首诗“韵含悲难”。本诗的韵脚是如何体现悲难的?请结合全诗简要赏析。答:
4.阅读下面这首唐诗,然后回答问题。
秦州杂诗二十首(其十九)
杜 甫
凤林戈未息,鱼海路常难。候火云峰峻,悬军幕井干。风连西极动,月过北庭寒。故老思飞将,何时议筑坛。
注 ①本诗作于乾元中(758~760)诗人客居秦州时。秦州,甘肃天水一带。②幕井:指军用的井。③飞将:指飞将军李广。④筑坛:建筑祭祀的坛场。(1)下列对本诗的理解与赏析,不正确的两项是()A.首联的意思是:凤林关的战乱还没有平息,鱼海的道路十分险恶,行军艰难。B.颔联的意思是:烽火浓烟滚滚冲上九天,像一座座高耸的山峰;军队在悬崖上攀爬,深入到敌人境内,水井中的水干涸了,处境非常困难。
C.颈联的意思是:朔风猛烈,西部边境也好像被撼动;月亮过了北方的边庭,好像越发寒冷。
D.尾联的意思是:老人们思念屡立战功的飞将军李广,但何时才能商议筑坛拜将的事呢?
③
④②
①E.“风连西极动”句以夸张的手法写风之大,地动山摇,再现了战场的惨烈景象,表达了诗人恐惧的心理。(2)简析本诗的思想情感。答:
5.阅读下面这首诗,然后回答问题。
郁郁 元好问
郁郁羁怀不易开,更堪寥落动凄哀。华胥梦破青山在,梁甫吟成白发催。秋意渐随林影薄,晓寒都逐雁声来。并州旧日风声恶,怅望乡书早晚回。
注 ①本诗写于蒙古军攻占山西,作者从三乡移居登封后。②寥落:空虚寂寞的样子。③华胥梦:黄帝白天寝睡,梦游华胥国,其间没有统治者,人民没有嗜好,没有爱憎,没有利害。
(1)下列对本诗的理解与赏析,不正确的两项是()A.诗的首句用叠声词“郁郁”领起,既表达了作者郁闷的心情,也为整首诗奠定了沉郁的感情基调。
B.诗人运用“华胥梦”和“梁甫吟”两个典故,表达了美梦破碎,悲苦凄切的感情。C.颈联从视觉、听觉两个角度来写景,通过深秋林子里微薄的影子以及秋晨飞雁的叫声,营造一种清新却又喧闹的气氛。
D.尾联叙述诗人百无聊赖等候书信,不禁回忆起并州以往的战事。
E.诗写于蒙古军攻占山西,作者从三乡移居登封后。联系这个背景,可以理解诗人远离家乡,孤单寂寞的心境。(2)简析本诗是如何抒情的。答:
6.阅读下面这首宋诗,然后回答问题。
宿池州齐山寺,即杜牧之九日登高处
杨万里
③
②
①
我来秋浦正逢秋,梦里重来似旧游。风月不供诗酒债,江山长管古今愁。谪仙狂饮颠吟寺,小杜倡情冶思楼。问着州民浑不识,齐山依旧俯寒流。
(1)下列对本诗的理解与赏析,不正确的两项是()A.诗题中的“九日”与“玉枕纱橱,半夜凉初透”一词描述的是同一个节日,古人喜在此佳节登高远望,啸咏骋怀。
B.本诗首联点明来秋浦(即池州)的时间和自己对这里的向往,以实为梦,以新游为旧游,写出对此地的亲切之情。
C.颈联中,“谪仙”诗风豪放,“小杜”放荡不羁;前者写出过“直挂云帆济沧海”这一名句。
D.颔联“风月不供诗酒债”,风月,指自然景物,诗人意指留恋山水、纵情美酒会让人消磨意志、不思进取。
E.诗人登临杜牧曾登高之处,运用拟人、用典等手法,既详细地描绘了池州的美好风光,又表达了对先贤的景仰与追思。
(2)这首诗抒发了诗人怎样的情感?请结合内容简要分析。答:
答案精析
1.(1)AD [A项律诗是近体诗。D项本诗颔联上句写静景,下句写动景。](2)①诗的颈联表达了诗人的漂泊思归之情。“酒添客泪”写出了诗人身在客中,不由伤感落泪,想要借酒浇愁,依旧愁心难抑,“归心”则透露了诗人的思归之情。②诗的尾联表达了诗人的忧国伤时之情。“欲问行朝旧消息”一句表现了诗人对朝廷的关切,“眼中盗贼尚纵横”一句则勾勒了遍地兵荒马乱的景象。2.(1)BD [B项送别时为秋天。D项无中生有。](2)①对被贬谪者才华的肯定和对友人的鼓励和安慰。②尾联运用典故,把才子贾谊比作友人,以贾谊之才肯定友人之才华。③写朋友将在郴州稍作停留,不会像贾谊悼念屈原一样伤感,以此鼓励安慰朋友。
3.(1)C [“只能到茱萸的子房去躲避早晨的寒意”表述错误,应为“只有茱萸的子房包裹的严实,仿佛可以躲避早至的寒冷”。](2)“韵含悲难”是说这首诗的韵脚所用的字都表达悲苦艰难的情感。首联写景,以一“残”字写出百花凋残,万木零落的深秋景象。颔联写秋意萧索,“寒”字使人心生寒意。颈联借景抒情,“难”字写出诗人欲建功立业施展抱负而不得的痛苦心境。尾联写诗人远在龙山边关,“阑”字表达了在这萧索的深秋之际,即使重阳佳节,也意兴阑珊,毫无喜庆的兴致。4.(1)BE [B项颔联的意思是:烽火浓烟滚滚冲上九天,像一座座高耸的山峰;孤军深入到敌人境内,水井中的水都干涸了,处境非常困难。E项“风连西极动”句极写秋风凄惨的景象,渲染悲凉的意境。](2)诗歌表达了对战争的谴责与不满,期盼能像李广一样建功立业荡平叛军来表达对战争的厌恨之情。
通用模块 篇3
1 报表设计及报表数据填充
由于本系统中各个报表采用统一的处理流程,每个报表在要输出的数据列的数量及内容都有差别,需要采用交叉报表来实现。报表的设计过程大体如下:
(1)在Delphi开发环境中,在窗体设计模式,向报表打印界面的窗体上增加TfrxReport、TfrxCxObject、TfrxXLSExport三个控件的实例,其中TfrxXLSExport用于将报表导出为Excel文件。
(2)双击TfrxReport的实例打开报表设计器,向报表中添加“报表抬头”及“主数据”两个Band。
(3)在“报表抬头”中添加一个“文本对象”,用于显示报表标题。
(4)在“主数据”Band中添加一个“交叉表对象”,如图1所示。
(5)设计完毕之后需要将报表模板保存为fr3文件。
返回报表打印界面的窗体设计界面,对TfrxReport的实例添加OnBeforePrint事件的相应函数,并添加代码如下:
2 模型相关界面实现
图2是报表管理的界面,此界面集中管理所有的报表,其中左侧树状视图分类列出了当前用户拥有权限的报表,右侧显示用户在左侧选择的报表的标题以及报表说明,分别对应S_Report数据表中ReportName和ReportDescription字段的值。用户在选择报表并点击“确定”按钮之后,将进入报表打印界面,如图2所示。
报表打印界面根据S_Report中当前报表对应的记录,生成SQL语句并提交数据库执行进行查询,将数据库返回的数据显示在界面上。同时界面的上方有一排按钮,用户可以对报表进行各种修改,其中包括“项目选择”和“数据选择”。分别点击这两个按钮之后弹出“项目选择”界面和“数据选择”界面。
项目选择界面如图4所示,这里左侧列出了当前报表候选字段列表(对应S_Report表中的FieldsName和FieldsAlias的值),右侧是用户已经选择的字段列表(对应SqlFields字段的值)。通过此界面用户可以选择要在报表中输出的字段列表。用户操作的结果将保存着S_Report表中。
数据选择界面如图5所示。数据选择操作允许用户对数据进行筛选,只在报表中输出符合某些条件的记录。此界面中,用户可以对当前报表候选字段列表中任意字段的数据进行过滤,只需要在界面上方的“字段”下拉列表选择要过滤的字段,在“关系”下拉列表中选择比较关系(大于、小于、等于等),在“值”下拉列表中选择或者输入比较目标,然后点击“添加”按钮,即可添加一个过滤条件,多个过滤条件之间是“与”或者“或”的关系。系统根据用户操作产生的过滤条件组合生成一条SQL过滤语句,此语句将作为S_Report中SqlWhere字段的值保存下来。
通过报表打印界面,用户还可以进行纸张类型设置、打印方向设置、更改列宽等操作,用户的操作都将保存在数据库中,下次打印报表的时候会使用已经保存的信息进行报表输出,避免用户每次打印报表时都需要重新设置的重复劳动。设置好之后系统将根据用户设定的条件重新获取数据,之后就可以进行打印输出了。
3 结语
本文简要介绍了FastReport报表组件,设计并实现了一个通用报表模块模型,并将此模型应用于本文作者开发的电费管理信息系统中。在实际开发的过程中,我们认为FastReport功能十分强大,使用起来十分灵活、方便。我们的通用报表模块模型,能够满足不同系统不同用户的需求,允许系统开发者或者系统管理员在不更改系统源代码的前提下对系统中的报表进行增加或者修改,并允许最终用户在打印输出时控制报表的数据和输出格式,十分灵活。此模型不依赖具体的应用,具有通用性,可以应用于其他的管理信息系统。
参考文献
[1]韩雨,董丽丽.基于FastReport图片报表的设计与实现[J].电脑知识与技术,2008(34)
[2]杜恒杰.基于FastReport的高校学生管理系统报表的设计与实现[J].科技信息,2008(35)
通用模块 篇4
在通信系统中,例如无线基站和SCA(软件通信体系)平台等,高速DSP(数字信号处理器)以及大规模FPGA(现场可编程门阵列)被广泛应用,器件之间的数据交互量急剧增加,系统的处理能力要求也极大增加,多种处理芯片并行处理是满足系统处理性能要求的有效解决途径,因此器件之间的互连成了十分重要的课题。DSP、FPGA等器件互连的方式有很多种,总体说来,有共享总线和点对点互连接口。共享总线由于多个器件共享带宽,降低系统数据交互效率,容易造成器件互连数据传输瓶颈;点对点互连可以使每个器件之间独立使用某个数据交互通道。但传统的接口,如多通道缓冲串口等,数据带宽有限,且不适合系统中任意器件的点对点互连,只能实现通道两端的器件互连。基于交换的互连方式是实现系统中任意器件点对点互连的有效途径,通过交换器件将器件以星形拓扑方式互连,可以实现拓扑中任意器件的数据交互,连接方式灵活,且独享接口带宽,能很好地满足系统中互连需求。SRIO(串行RapidIO)是流行的互连方式之一,具有高数据带宽、高传输效率、高可靠性等特点,很多IC制造商都在新推出的器件中集成了该接口,为SRIO的广泛应用提供了器件基础。
本文基于SRIO接口,采用SRIO交换芯片、DSP、FPGA等器件,设计了一种通用的数字信号处理模块,满足无线基站、SCA等应用领域对信号处理硬件平台的性能要求。
1 SRIO技术
RapidIO架构用于网路和通信设备,通过提供带宽、软件独立性、容错性和短等待时间,满足更高的性能要求。RapidIO互连架构的设计与流行的集成通信处理器、主机处理器以及网络DSP相兼容,是高性能包交换互连技术。它满足了高性能嵌入式系统行业对内部系统互连的需求,包括可靠性、高带宽和更快的总线速率。RapidIO互连支持片对片和板对板的通信,其性能可达到10 Gbit/s或更高。它是低迟延、基于存储器地址的协议,可升级、可靠、支持多重处理,并对应用软件透明。另外,它对操作系统软件没有影响。
RapidIO协议分为物理层、传输层和逻辑层3层。物理层负责完成信息包如何在两个物理点之间必要信息(如电气接口、流控制等);传输层负责端到端传输数据包的必要信息(如路由地址);逻辑层完成端点处理交易的必要信息(如交易类型、大小、物理地址)。SRIO提供了两种接口模式,即1x和4x。1x SRIO设备提供了收发两个单工通道,每个通道的波特率可以配置为1.25 Gbit/s、2.5 Gbit/s和3.125 Gbit/s,支持的数据速率分别为1 Gbit/s、2 Gbit/s和2.5 Gbit/s。在4x模式下,RapidIO设备提供了4对收发器,因此最高的数据速率可以达到10 Gbit/s。图1给出了4x设备的连接方式。
2 实现方案
2.1 器件选型
在该平台中,数字信号处理器件主要包括DSP和FPGA,两者之间通过SRIO交换器件实现互连。
2.1.1 SRIO交换器件
Tsi578是第三代SRIO交换机,支持80 Gbit/s的聚合带宽。借助 Tsi578系列交换机,用户可用较低的成本开发出功能强大、性能卓越的系统。Tsi578 为设计人员和架构工程师提供了极强的伸缩性,使其设计出的设备得以广泛应用。通过多种端口带宽和频率选项,可以灵活地选择端口配置。Tsi578提供了众多的增强功能,例如,通过增加多播功能提高矩阵交换能力、通过调度算法进行通信量管理、可设定缓存深度,以及监控矩阵性能,以便对通信量进行监控和管理。本方案中采用该型号芯片作为SRIO交换器件。
2.1.2 DSP
DSP采用TI公司的TMS320C6455。该款产品可实现更高性能、更精简代码、更多片上存储器以及超高带宽的集成外设,包括用于处理器间通信的SRIO总线。该款新型DSP提升了2倍至12倍的性能及 I/O 带宽,使电信、网络与视频基础设施终端设备以及高端成像系统开发人员可大幅增强系统性能,并在系统内集成更多的高带宽通道,实现更完美的影像质量。
2.1.3 FPGA
FPGA选用Altera公司的StratixⅡGX 系列。StratixⅡGX 系列是Altera第三代带有嵌入式收发器的FPGA。该系列经过优化设计,能够为不断发展的各种应用和需要高速串行I/O的协议提供功能强大的解决方案。在622 Mbit/s至6.375 Gbit/s工作范围内,经过优化的收发器具有较强的噪声抑制能力和优异的抖动性能,收发器能够以6.375 Gbit/s数据速率成功地工作在长度超过40英寸(1.25 m)的标准FR-4材料电路板和背板上。收发器含有多种特性,确保在较高数据速率下实现信号完整性,同时保持较低的功耗。
2.2 平台设计方案
平台实现框图图 2所示。
平台集成了2片TMS320C6455和2片StratixⅡGX系列FPGA,Tsi578提供了8个4x模式的 SRIO端口,DSP和FPGA分别连接到Tsi578的其中一个4x端口上,并通过SRIO接口实现互连。平台外部接口形式和板卡尺寸采用AMC(Ad M Card)标准,对外提供2个标准4x SRIO接口,用于与背板之间的数据交换。
由于TMS320C6455、FPGA以及Tsi578对上电时序和收发器工作时钟要求比较严格,下面介绍一下平台供电设计方案和时钟实现方案。
2.2.1 供电设计
该平台中,DSP、FPGA和Tsi578等所需要的电压种类较多,且对上电顺序严格,因此必须精心设计供电电路,并优化电源电路,减少电压转换器件数量,降低因开关电源造成的电磁骚扰。
TMS32C6455选用主频为850 MHz,其主要供电电压有1.2 V的内核电压、1.2V的I/O电压、3.3 V的I/O电压、1.8 V的I/O电压以及1.8 V的锁相环电压;FPGA的主要供电电压有1.2 V的内核电压、1.2 V的收发器电压、3.3 V的I/O电压等;Tsi578的主要供电电压有1.2 V的内核电压和3.3 V的I/O电压。综合上述情况,平台所需的电压值有3种,即1.2 V、1.8 V和3.3 V。虽然同一个值电压相同,但由于所要提供的对象不同,可能是内核或者收发器或者锁相环等,对电源纹波要求不同,同时需要控制其上电时序,因此需分别考虑每一个器件的供电电压提供方式,合并可以一并提供的电压。
平台供电的总电源为+12 V,该电源通过AMC接插件或电源插座输入。图 3给出了+12 V转成3.3 V、1.8 V、1.2 V的框图,这些电压必须经过处理后才能被Tsi578、DSP和FPGA使用。
图4给出了Tsi578供电配置的示意图,DSP、FPGA供电的方式采用类似方法,这里不再赘述。
2.2.2 时钟设计
平台所需的时钟主要有Tsi578 SRIO使用的差分156.25 MHz、DSP和FPGA SRIO使用的差分125 MHz、Tsi578 单端100 MHz工作时钟以及DSP和FPGA单端50 MHz工作时钟。平台采用一片IDT5V9885和MAX3624实现各种时钟信号。
MAX3624可以提供3路差分时钟,频率可以配置成125 MHz和156.25 MHz,分别供给2片DSP和Tsi578;IDT5V9885提供2路125 MHz差分时钟,供给2片FPGA;同时IDT5V9885提供4路单端时钟,配置成50 MHz,分别供给DSP和FPGA;晶振产生Tsi578的单端100 MHz工作时钟。
2.2.3 电路板设计
由于平台集成了Tsi578、2片DSP和FPGA,整个模块的功耗比较大,因此在布局时必须要考虑散热问题,合理布局大功率器件。根据AMC板卡的结构特点,平台的布局可以参考图5。
电路板设计时还有一个重点是SRIO信号布线。Tsi578、DSP以及FPGA的手册中都给出了一些常规的SRIO布线要求,按照这些要求进行布线,一般都能满足SRIO信号完整性要求,值得注意的是,电路板设计和加工时一定要进行阻抗控制,使得差分信号的阻抗满足100 Ω。另外,电路板的层数不应少于8层,保证SRIO信号走线层紧靠参考地平面。
3 试验结果
依据本方案设计的平台已成功应用于某通信系统中,经长期试验,运行稳定,数据传输带宽高。图6是示波器测量的SRIO信号工作于1.25 Gbit/s(见图6(a))和3.125 Gbit/s(见图6(b))时的眼图。
从图6可看出,SRIO接口即使在3.125 Gbit/s模式下工作,仍然保持了很好的信号完整性,满足了SRIO信号判决条件。
该平台提供了2个主频850 MHz的DSP和2个StratixⅡGX系列FPGA,可以满足大多数情况下的数字信号处理系统要求,并且提供了两路4×SRIO信号路由到背板上,实现了与系统中其他模块的高速互连。
参考文献
[1]Tsi578 Serial RapidIO Switch User Manual[M].Tundra Sem-iconductor Corporation,2007.
[2] Tsi578 Serial RapidIO Switch Hardware Manual[M]. Tundra Semiconductor Corporation,2007.
[3]TMS320C645x Serial RapidIO User′s Guide[M].Texas In-struments Corporation,2006.
通用模块 篇5
以前船舶电力设备系统发生故障时, 都是船员进入设备舱, 对故障数据信息进行手写抄录, 采用这种方式不仅工作量过大、不易操作, 而且也不能及时地采集故障信息, 而嵌入式MCU的通用监控模块则可以有效地解决这个问题。
1 嵌入式MCU通用监控模块硬件的设计
嵌入式MCU是在对液压检测仪进行在线监控时采取的模块化硬件处理方式。嵌入式MCU通用监控模块硬件如图1所示。
从图1中可以看出, 嵌入式MCU通用监控模块硬件的工作流程为:被检测的液压系统向传感器传递信号, 传感器接收信号后开始检测;然后传输给滤波器, 以过滤信息中的噪声;A/D将采集到的模拟信号转为数字信号, 以方便计算机计进行信息处理;将内部镶嵌的MCU控制器作为监控模块的硬件核心, 对信息进行分析、处理, 并提取其中的有用信号对液压系统的状态进行观察。嵌入式控制器本身就有高存储容量单元, 可储存查询过的历史数据, 而且存储器被设计为外围总线接口, 更方便数据的传达。
嵌入式MCU选用的是ATMEL公司的AT90CAN128控制器, 该处理器不仅资源丰富, 而且处理信息的速度非常快。如果要对一周的数据进行存储, 可以选用存储单元在512 MB以上的CF卡, 它的容量大、擦写寿命长, 而且断电时数据不容易丢失;实时时钟可选用功耗能较小、擦写寿命很长和自身带有一定的小容量的FM3104RTC芯片;光电隔离器件可选择工作最高频率可达15 MHz的TLPl15A器件;CAN总线收发器可选用带双向保护功能的ESD保护器件;为了保证前端器件运行的可靠性, 双通的多路选择单元可以使用军用的DG407。
2 嵌入式MCU通用监控模块软件设计
嵌入式MCU通用监控模块软件如图2所示。
2.1 CAN通信初始化字的设计
CAN通信初始化字主要是用来设置CAN通信的参数。寄存器在初始化时有总线定时寄存器0、总线定时寄存器l、接收代码寄存器、接收屏蔽寄存器和输出控制寄存器等。由于总线定时寄存器的内容决定着波特率数值, 因此在访问总线定时寄存器的初始化字时, 必须依照系统内各个CAN通信控制器的晶振频率来设计。
2.2 数据发送和接收程序的设计
CAN控制器能够自行完成对信息的接收, 因为信息是由CAN控制器发送给CAN总线的, 所以只需要发送程序把信息帧发送到缓冲区域内, 然后开启发送命令即可。但是要注意是, 如果发送过程中发生中断, 是因为发送的缓冲区可以被再次利用, 而不是意味着信息发送任务的完成。由于CAN控制器能自行完成对信息的接收, 因此只需要接收缓冲区内需要接收的信息即可。在读取完缓存器中接收的信息内容后, 需要重置CPU中的缓存位, 只有这样, 才能使其将接收到的报文变成有效文件。
2.3 CAN总线异常的处理方法
由于CAN总线是串行通信局域中一种较为优良的网络, 其自身就有强大的检查错误和排查错误的能力, 因此在设计CAN总线时, 要充分利用CAN总线这一特性, 以提高通讯系统的可靠性。CAN协议规定网络上任何一个节点错误数值都要使用计算器计算, 使CAN总线处于以下三种状态:“错误-激活”状态、“错误-认可”状态和“总线脱离”状态。如果CAN总线处于前两种状态, 则总线可以根据网络节点上的信息参与到总线通信中;如果CAN总线是处于第三种状态, 则网络节点不仅不能进行信息发送, 也不能接收到任何数据帧。CAN协议对脱离的总线节点再重新参与到总线通信时作了严格规定, 判断一个节点是否脱离了总线可以使用查询和中断两种方式, 要恢复“总线脱离”状态的节点, 需要依照CAN协议中的规定流程操作, 否则会使节点一直处于“总线脱离”状态。
3 结束语
嵌入式MCU通用监控模块主要是对数据信息进行采集、储存和对简单的错误信息作出分析和判断, 这种便携式的监测仪器装置能够在现场对信息进行记录、分析并将资料传送到计算机上, 然后使用计算机对其进行详细分析。
摘要:对通用监控模块的构成设计和实现方法进行了阐述。该模块不仅能对中小型仪器进行检测和分析, 同时还能诊断和在线检测大型设备系统。
关键词:嵌入式MCU,船破液压系统,模态检测,监控模块
参考文献
通用模块 篇6
在进行红外导引头半实物仿真试验中,需要对红外导引头的性能进行评估。在评估过程中,很重要的一个环节是对不同型号的红外导引头的视频信息进行采集和处理[1,2]。由于不同厂家不同型号的红外导引头在实现原理,组成和接口标准上都存在差异,因此需要红外导引头半实物仿真系统的视频采集模块具有通用性,能够适应多种视频制式,匹配多种硬件接口,在软件上能够屏蔽底层差异,实现与硬件无关。
分析了导引头视频采集常用硬件接口和软件方法,给出了一种基于Opencv和Directshow的红外导引头通用视频采集方案,在硬件层面,通过标准的PCI图像采集卡来连接不同类型导引头的视频输出线;在软件层面,通过Opencv中集成的Directshow模块对导引头视频进行采集。
2 红外导引头视频采集结构
在红外导引头半实物仿真系统中,红外导引头摄像头可以作为参试的部件参与到仿真过程中,其与图像处理仿真计算机相连,具体结构如图1所示。为了完成不同的红外导引头的性能测试工作,需要测试系统能够支持对不同型号和不同厂家的导引头进行性能评估。这要求视频采集模块具有通用性,在硬件上能够适应各类视频线接口,在软件上能够屏蔽底层硬件差异。
3 硬件接口通用性
在硬件接口上,导引头的视频输出标准可能为电视制式标准,PAL和NTFC,也有可能直接输出数字制式信号,即直接输出DVI、HDMI等数字视频信号[3]。
在电气接口上,可能是S端子视频信号线,也能是其他类型。针对可能存在的不同的导引头视频输出硬件接口。在具体的工程实现中,可以通过提供具有多种接口的视频采集卡来进行测试。
文中的半实物仿真平台的搭建中使用的是Windows操作系统,使用的是PCI总线的视频采集卡来进行视频采集。目前市面上主要的视频采集卡有天敏、大恒、大华、影音大师VI等。提供的采集卡普遍支持Windows操作系统,并支持各类视频硬件接口。因此通过PCI总线的图像采集卡可以解决导引头视频采集硬件通用性的问题。
4 软件接口通用性
为了实现导引头视频采集的通用性,在软件模块也需要有相应的通用性。能够完成实现与硬件无关。
4.1 常见的视频采集方法
目前,Windows操作系统的视频采集主要分为3种方法[4],基于VFW的实时视频数据采集,基于Directshow的实时视频数据采集和基于是视频采集卡自带的SDK的视频数据采集。
4.1.1 基于VFW的视频采集
VFW(Video for Windows)是Microsoft提供的数字视频软件开发包,其核心是AVI文件标准。针对AVI文件,VFW提供了一套完善的视频采集、压缩、解压缩、回访和编辑的应用程序接口(API)。开发人员可一利用VFW提供的API来进行视频捕获的编辑[5,6,7]。
VFW主要存在几点不足,(1)在连续捕获图像时的实时性能欠佳,(2)在进行视频保存的时候,需要弹出对话框来进行视频压缩格式的选取,这在一定程度上会影响视频处理系统的处理流程[8]。VFW技术出现技术较早,目前Microsoft正逐步采用Directshow取代VFW[9]。
4.1.2 基于Directshow的视频采集
Directshow是微软公司在Active Movie和Video for Windows基础上推出的新一代基于COM的流媒体处理开发包[10,11]。其使用Filter Graph模型来管理数据流的处理过程。使用Directshow,可以很方便地从支持WDM驱动模型的采集卡上采集数据[12,13],具体的原理图如图2所示。目前,主流的视频采集卡都支持Directshow,并配有专门的Direct X驱动程序。
4.1.3 基于视频采集卡SDK的视频采集
不同的视频采集卡提供商,一般都会提供与采集卡配套的软件开发工具箱(SDK),其形式一般是动态链接库或者静态库[14,15]。使用采集卡SDK进行编程,较为简单方便。但是在通用性方面,一般只在某一品牌的系列产品之间具有通用性。不同厂家之间的SDK实现机制和使用方法都有较大差别。
文献[16]指出,可以设计通用的采集流程基类,在基类中定义通用的采集流程,而在具体实现的时候,在子类中通过SDK中的函数来实现从基类继承的函数。但在具体的编程实践过程中,实现难度较大。首先各个厂家的视频采集和处理流程各不相同,有的采用回调机制,通过回调函数进行图像的处理,有的采用缓冲机制,一次采集2副图像,在采集第2副图像的同时进行第一副图像的处理。其次,各个函数的输入输出标准也不一致。所以在设计采集流程基类的时候难度较大,工程意义不强。
为了实现视频采集的通用性技术,采用Directshow技术来进行视频采集软件的开发。
4.2 基于Opencv和Directshow的视频采集
在进行具体的实践过程中,可以利用Opencv中的函数库进行程序开发。直接使用Directshow的API进行开发,代码较为繁琐,Opencv中封装了很多针对视频流的处理函数[17],能够非常方便地进行图像和视频的采集、处理、显示和保存。
在Opencv中,CCamera DS类对Directshow中摄像头的相关操作进行了封装,提供了对于摄像头的几项操作,分别是打开摄像头Open Camera,关闭摄像头Close Camera,返回摄像头数目Camera Count,返回摄像头名称Camera Name,返回图像宽度Get Width,返回图像高度Get Height。抓取一帧图像Query Frame。
因为Directshow和Opencv中的数据结构不同,所以需要进行数据格式的转换。其中,在CCamera DS中的Query Frame中进行了格式的转换,把采集到的视频数据写入到了Ipl Image格式图像中的数据段中。
在编写视频采集处理程序时,具体的流程如图3所示。其中视频采集过程的核心代码如下所示:
可以看到通过使用Opencv中CCamera DS类,视频采集的过程变得非常的简单,并且因为是基于Directshow的视频采集,在采集效率上能得到较好的保证。
5 实验验证
为了验证本方法的可行性和通用性,对HF-160-2双光吊舱中的红外摄像头进行视频采集。HF-160-2双光吊舱的视频输出制式为PAL制,视频输出信号线为S端子线。
分别采用大恒的DH-VT120型号PCI图像采集卡和天敏SKD3000型号的PCI图像采集卡进行采集。安装的驱动为Directshow驱动。运行的操作系统为Windows XP Professional,使用的开发环境为Visual Studio2008,使用的Opencv版本为2.3.1。
经过试验验证,DH-VT120型号PCI图像采集卡和天敏SKD3000型号的PCI图像采集卡在安装完Direct X驱动后,均可以直接通过采集程序进行采集,导引头吊舱中红外摄像头的输出帧频是25帧/s。利用Opencv和Directshow的采集软件能够达到25帧/s的采集要求,并成功在图形处理计算机上进行显示和处理。具体效果如图4所示。
6 结语
采用基于Opencv和Directshow的方法完成红外导引头视频的通用采集工作,能够采集不同输出制式和硬件接口的红外导引头输出视频。通过实验验证,只需安装好图像采集卡对应的Direct X驱动,就能完成相应的采集任务,而对相应的采集程序不需要修改,从而实现了视频采集的通用性。
摘要:在利用红外导引头半实物仿真系统对红外导引头性能进行评估的过程中,需要对不同型号的红外导引头进行视频采集,为此需要导引头视频采集模块具有通用性。针对红外导引头视频采集通用性问题,分析了常用的视频采集方法,采用了基于Opencv和Directshow的方式进行视频采集。从实验效果看,该方法能够采集出不同红外导引头中的视频信号,具有较好的通用性。
通用模块 篇7
在一些特定的条件下,由于气候、机械和电磁环境适应性、可靠性、可扩展性等方面的因素对嵌入式计算机有很高的要求,Compact PCI(CPCI)总线就是为适应这种要求而推出的一种工业计算机总线标准[1,2]。CPCI可以迅速利用PCI的优点、提供满足工业环境应用要求的高性能的核心系统,同时还能充分利用传统的总线产品。CPCI不是重新设计的PCI规范,而是改造现行的PCI规范,使其成为无源底板总线式的系统结构[3,4]。在车载嵌入式环境中,要求系统中搭载的通用处理模块针对专门设计的CPCI机箱底板具有主从自适应能力,这样的设计在具有多个CPCI外设的嵌入式平台中具有很大的优越性。针对这种需求,提出了一种基于PCI6466的具有主从自适应功能的CPCI通用处理模块。
1 系统结构
CPCI通用处理模块通过感知自己在CPCI底板总线的槽位(系统槽还是外设槽)调节自己的工作方式,系统结构如图1所示。设计中采用PCI6466作为模块内部PCI局部总线到CPCI底板总线的桥接器。PCI6466是一种功能强大的工业用PCI-PCI桥接器,可以在初端(Primary Port)和次端(Secondary Port)两个端口间实现完全异步的操作。PCI6466可以配置成透明桥和非透明桥2种模式,透明桥模式只提供系统间的电气隔离,非透明桥在提供电气隔离的同时还要提供系统间的地址隔离,这就为多个PCI设备在CPCI底板总线上应用提供了方便。
为了实现CPCI通用处理模块的主从自适应功能,在本设计中PCI6466被配置为通用模式。这种模式下,同一个CPCI通用处理模块可以任意的插在CPCI底板总线的系统槽(System Slot)和外设槽(Peripheral Slot)中,PCI6466通过感知模块所在的槽的类型来配置自己工作在透明桥模式还是非透明桥模式。在系统槽中,模块作为主设备,PCI6466工作在透明桥模式,在外设槽中,模块作为从设备,PCI6466工作在非透明桥模式。
具体的实现方式是,在通用模式下,PCI6466的
2 PCI6466非透明方式配置
PCI6466工作在透明模式时,由于其只对系统提供电气隔离,所以应用起来比较简便。但是对于PCI6466非透明桥来说,其配置方式就显得比较复杂。作为CPCI底板总线上的一个设备,非透明桥需要在向其他外设发送请求的同时向其他外设提供对内访问的空间,图2为非透明桥的数据流向。
PCI6466工作在非透明桥方式时,在PCI6466的初端需要配置下行基地址和上行翻译地址,在次端需要配置上行基地址和下行翻译地址。需要注意的是,在配置上下行基地址之前必须配置上下行基地址掩码。上下行地址掩码和上下行翻译地址的配置是在扩展寄存器中进行的,扩展寄存器的访问方式为在6466的PCI配置空间的偏移量0xD3中写地址(8位),在偏移量0xD4中写内容(32位)。扩展寄存器列表如图3所示。
掩码具体含义如下,例如在0xF中写入0x821F131F,0x13对应为下行基地址寄存器1的掩码,含义为基地址掩码最高有效位(MSB)的位置。例如掩码0x13表示掩码的最高为在第19位。基地址0x93100000和掩码0x13的关系见图4,配置后地址范围为0x9310 0000~0x931F FFFF。
3 综合嵌入式平台中CPCI通用处理模块工作方案
在CPCI底板总线上插有多个模块时,这时需要同时考虑主模块和从模块的协同工作。针对提出的基于PCI6466的具有主从自适应功能的CPCI通用处理模块,考虑工作方案为:CPCI通用处理模块作为主模块时,主模块的PCI6466工作在透明桥方式,这时由于从模块的PCI6466工作在非透明模式,所以需要由主模块在从模块PCI6466的次端配置从模块的上行基地址和下行翻译地址,同时从模块需要对自己的上行翻译地址和下行基地址进行配置。
为了使系统中主从模块对CPCI访问空间的配置更加智能,在系统上电时,主模块向从模块的基地址寄存器写入0xFFFF FFFF,然后读出,根据读出数据中0b1的个数确定从模块需要多少存储器空间。然后自行分配相应大小空间并将基地址写入基地址寄存器。
需要考虑的一点是,具有自适应功能的CPCI通用处理模块由于要在系统槽和外设槽2种插槽中使用,所以一般情况下都是直接将PCI6466配置成初端先启动或次端先启动,并不会通过考虑模块具体的使用来设置到底是初端先启动还是次端先启动。这样带来的问题是,插入系统槽和外设槽的模块被同时配置成初端先启动时,若主模块在上电复位结束后即访问CPCI总线对各个从模块的次端进行配置,但从模块的PCI-PCI桥接器配置成初端先启动,即从模块操作系统启动后,对桥的初端进行配置后,次端才能进行配置。
造成的结果是,主控模块上电复位后访问从模块的次端,CPCI总线被拉死,程序停止执行,看门狗复位有效,复位整个系统。主模块再次访问从模块,CPCI再次被拉死,反复复位。这时就需要操作主控模块待从模块配置完成后再对从模块进行配置,防止系统被拉死。
4 结 语
本设计提出的基于PCI6466的具有主从自适应功能的CPCI通用处理模块在具体的应用环境中具有很大的便利性,能够方便地应用在CPCI底板总线的系统槽和外设槽中,同时针对一些可能出现的问题做针对性的处理,为CPCI系统提供了一种通用的、具有主从自适应功能的通用处理模块的解决方案。
参考文献
[1]王丽,黄发钧.基于CPCI总线CPU主控模块的设计与实现[J].电子设计工程,2010,18(4):125-127.
[2]李贵山,陈金鹏.PCI局部总线及其应用[M].西安:西安电子科技大学出版社,2003.
[3]刘鑫,周金莲.CompactPCI总线工控机技术的现状和应用[J].电子技术应用,2002(7):2-3.
[4]刘鑫.中国CompactPCI/PXI技术发展与应用[J].测控技术,2004,23(6):1-3.
[5]李贵山,戚德虎.PCI局部总线开发者指南[M].西安:西安电子科技大学出版社,1997.
[6]王学龙.嵌入式Vxworks系统开发与应用[M].北京:人民邮电出版社,2003.
[7]周启平,张杨.Vxworks下设备驱动程序及BSP开发指南[M].北京:中国电力出版社,2004.
[8]吴超.车载实时控制模块与实现[J].航空计算技术,2010,40(2):122-126.
[9]刘青,马天乙.CPCI数据总线接口的设计与实现[J].电子科技,2011(6):95-96.
通用模块 篇8
在MIS系统中,经常需要用户进行数据的录入,显然,逐条录入必定增加用户的工作量,而且耗时长。当数据量很大时,数据的录入将十分烦琐,大大降低客户的工作效率。而Excel工作簿是日常办公中常用的桌面电子表格,以其功能强大,界面友好等受到了许多用户的欢迎。如果能将处理好的Excel数据按照系统的要求进行整理后再批量导入到数据库中以实现数据的快速录入这将会给用户带来极大的方便,大大提高工作效率。所以,开发一个批量EXCEL文件导入不同数据库的通用模块是必要的。
2 批量导入功能的设计和实现
基于ASP.NET的批量Excel数据导入模块如图1所示。
具体实现过程是:首先,根据用户指定的Excel文件名,上传到页面表单的List Box控件中进行显示,当用户选择每一条List Box的文件名列表,Grid View中将动态增加该文件的表单名称以及生成导入方式的Drop Down List,用户对所需导入的表单进行配置。确定后选择所需导入的数据库的类型,如果Excel数据是导入Access数据库则输入路径,如果是导入SQLSERVER则输入SQLSERVER服务器名,选择登录方式后从下拉列表Drop Down List中选择需导入数据的对应的SQL表名。最后单击[导入]命令按钮,则程序在后台将按照用户选择的文件列表及配置的表单导入到指定数据库中。
将EXCEL文件表单批量导入到Access核心代码如下:
将EXCEL文件表单批量导入到Sql Server中核心代码:
3 结束语
该文为了方便开发者,为了增强导入模块的可重用性和可移植性,介绍了在Visual Studio.NET环境下,一种可让用户自行选择Excel文件中的任意表、导入进不同数据库表的通用导入数据模块的设计方法。对于开发者而言,开发一个批量EXCEL文件导入不同数据库的通用模块是有着很重要的现实意义。
参考文献
[1]高智超,张志揆.将Excel数据导入MySQL中的两种技巧[J].电脑编程技巧与维护,2012(19).
[2]孙明丽,庞娅娟,吕继迪.ASP程序开发范例宝典[M].2版.北京:人民邮电出版社,2009.
[3]张树亮,李超.ASP.NET2.0+SQL Server网络应用系统开发案例精解[M].北京:清华大学出版社,2006.