请高手指教,我现在要做一个400个开关量的采集传输装置
请高手指教,我现在要做一个400个开关量的采集传输装置,采样周期<20ms,传输距离>2m,有线传输就好,请大家给点意见! 初步选定方案为:cpu采用atmega128,采样部分采用7片74ls138扩展7*8=56个io口,采用其中50个口选通50个74ls244用于采集。传输部分采用:高速串口芯片TL16C754
疑问:1.采样点数太多,采用查询浪费好多时间,想采用中断,但是还没有好的方案
2.想采用类似交换机似的级联方式传输,暂时没有好的思路
3.想采用更高级的FPGA
请高手指教啊!谢谢! 大家给提个好的方案讨论下啊! 采样周期小于20ms?这是在什么场合的应用呢?在工控行业有时候为了防止干扰或者抖动,我们还要做50ms以上的滤波呢! 直接用并串转换算了,用总线估计布线很麻烦的。 7片74ls138+50片74ls244+PCB面积及布线,CPLD/FPGA应是更好的选择 回复3楼:我们是做人机互动的,要求实时性很强!
回复4楼:我也在考虑用74hc165进行并串转换,但是担心速度跟不上啊!
回复5楼:我开始就考虑的FPGA和CPLD但是老大不同意!无奈啊! 并串转换速度应该够的,假设1个位耗时5us,400个位也就是2ms而已 回复4和7楼:你们说的并串转换,具体怎么做?还需要单片机吗?是用专用芯片吗?能说下具体方案吗?谢谢! 如果是那么高的频率还真是建议用CPLD。 回复9楼:CPLD是比较适合,但是老大不同意,现在我怀疑老大的实力了! 中断肯定过不了测试.. 回复11楼:请问yemingxp兄你有好的建议吗?请提出宝贵意见啊!谢谢! 难道用于电路板测试用啊?ICT? 50个244挂在总线上,得多少缓冲器啊~~~~
模拟开关呢,8(模拟开关4051)*8(模拟开关4051)=64占用7个8位口,可以采集469个开关量。
用mega1280吧。86个io,模拟开关ABC ABC 串口 ,肯定够用了。 to 10L,永远不要怀疑老大的实力,使用并进串出吧,或使用并进串出的集成芯片,记得有种芯片可以扩展几十个IO口的,四川的,具体什么芯片你可以查一下 四川国腾GM8164,一片可扩展32个输入 回复QQ1013182577 yu:不是用于电路板测试,只是开关量的采集!
回复erxun 老孟:谢谢你的好建议,我好好思考下,查下资料!
回复czzhouyun :很好的信息,就是不知道价位怎么样,我查一下! 【14楼】 erxun 老孟
模拟开关不适合。4051导通电阻比较大,信号源要通过一个通道电阻拉动一大片4051的公共端,还要通道切换,裕量不多。
如果不要求随机访问,个人意见是并串转换,采集时间是足够的,更主要的是每一片门都有锁存缓冲,电气特性上更保险。 【1楼】 wagina
看到你说讨论查询和中断的选择,不知道是不是这些开关量都是长高或者长低。
如果这样,让单片机硬件输出时钟,移位芯片输出接到中断,这样就可以实现硬件响应。响应后再用软件移位读取。
综合起来,用若干165+mega8应该可以完成核心功能。 回复shihantu2:谢谢!很好的建议!我思考下,整理好方案大家讨论下! 现在有个疑问请教下大家,就是串口通讯部分比如通讯波特率为9600那么也就是1s传输9600位,那我1s中要是既采集又传输肯定就传输不了9600位了对吗?因为cpu还要在采集上消耗时间,不知道分析的对不对!请教了! 你对通信也有特殊要求吗?用啥协议呢? 串口中断耗的CPU时间不多。跑大流量协议或者复杂运算(加解密等)就不好说了。 回复oldtom:想走485总线,采用MODBUS协议,因为传输距离大约400米
回复shihantu2:大流量协议指的是什么协议啊?请教了! 如果用modbus的话,那500ms一个来回可能差不多了。 在网上查了一些开关量输入输出模块,大多支持485总线或者CAN总线的,而且每块也就采集8个点,感觉我设计的这个方案有问题,即使能实现,抗干扰性也是个问题,请高手指教! 谁可以推荐一本详细的介绍通讯协议的书啊,谢谢! 现在又有个疑问,我读244的数据的时候用一个74ls148可以实现吗?74ls148连接单片机一个8位io口
谁还有更好的办法呢?谢谢! 分而治之。一个模块采集30-40点,主控和这些模块通讯 20ms一个采集周期,那等你用modbus通信送出去,20ms肯定达不到的。
你的开入采集是不是要和开出关联起来呢?感觉你们的应用好奇怪啊! 【28楼】 wagina
我反而不明白为什么要这样了。。。 回复helloshi :你得建议很好,我们现在就是这么在做,我们分成了3块板子。
回复oldtom:20ms是没问题的,假设设置波特率38400的话,一秒钟可传输4.8Kbit足够400/8=50bit的数据量。
回复shihantu2:我是想把各路开关量都通过一个74ls148传送到cpu只是每组开关量都可以顺序的去控制74ls148.(因为若每组都用一个得话io太多啊,现在选用的是并转串传输,只要设计好时序就可以了。) 400米,38400估计够呛,你试试误码率有多少 wagina :
您这个开关量转化器做的如何了?如果好了可以联系vijea:qq20853795 进行包装。
页:
[1]