chensong0007 发表于 2010-10-7 17:04:06

多通道PWM捕获以及输出,用FPGA实现好还是用ARM?

最近在弄一个数码舵机控机器,要求有8路PWM输入捕获以及8路PWM输出,并通过一个串口与上位机进行通信,各位大侠你们说是用FPGA来做好,还是采用ARM来做好。
注:输出PWM必须进行混控运算,这样在FPGA中要实现一些算法,是不是有点烦琐;ARM的捕获一般是采用定时器中断来完成,这样采样多路会有细微误差?PWM输出则采用PWM模块产生。

wenming 发表于 2010-10-7 17:18:07

没有商量,使用FPGA吧.

chensong0007 发表于 2010-10-7 17:29:05

但是我在做串口通信时,一段时间通信正常,一段时间又乱码,不知道怎么回事?
通信模式是每隔20ms,将采集到的脉宽值通过串口发送到上位机。我现在附上我测试时的一些数据。请各位有过串口通信的大侠帮我指正。
2010年10月06日16时24分47秒
69 16 6A 16 5F 6B 16 6C 16 5F 6D 16 5F 6E 16 6F 16 5F 70 16 71 16 5F 72 16 5F 73 16 74 16 5F 75 16 76 16 5F 77 16 5F 78 16 79 16 5F 7A 16 7B 16 5F 7C 16 5F 7D 16 7E 16 7F 16 5F 80 16 81 16 5F 82 16 83 16 5F 84 16 85 16 5F 86 16 87 16 5F 88 16 89 16 5F 8A 16 5F 8B 16 8C 16 5F 8D 16 8E 16 60 8F 16 90 16 5F 91 16 92 16 5F 93 16 94 16 5E 95 16 96 16 60 97 16 98 16 5F 99 16 60 9A 16 5F 9B 16 9C 16 60 9D 16 9E 16 60 9F 16 5F A0 16 A1 16 5F A2 16 A3 16 5F A4 16 5F A5 16 A6 16 5F A7 16 5F A8 16 A9 16 5F AA 16 5F AB 16 5E AC 16 AD 16 5F AE 16 5F AF 16 5F B0 16 B1 16 5F B2 16 5F B3 16 5F B4 16 5F B5 16 B6 16 5F B7 16 5F B8 16 5F B9 16 BA 16 5F BB 16 5E BC 16 5E BD 16 5F BE 16 5F BF 16 5F C0 16 C1 16 5F C2 16 5F C3 16 5F C4 16 C5 16 5F C6 16 5F C7 16 5F C8 16 5F C9 16 5E CA 16 5E CB 16 CC 16 5F CD 16 5F CE 16 5F CF 16 5E D0 16 D1 16 5E D2 16 5F D3 16 5F D4 16 5F D5 16 5F D6 16 5F D7 16 5F D8 16 D9 16 5E DA 16 5F DB 16 5E DC 16 5F DD 16 DE 16 5E DF 16 5E E0 16 5E E1 16 5E E2 16 E3 16 5F E4 16 5F E5 16 5F E6 16 E7 16 5F E8 16 5E E9 16 5F EA 16 EB 16 5F EC 16 5F ED 16 5F EE 16 EF 16 5F F0 16 5F F1 16 5E F2 16 5F F3 16 F4 16 5E F5 16 5F F6 16 5F F7 16 F8 16 5F F9 16 5F FA 16 5F FB 16 5F FC 16 FD 16 5F FE 16 5F FF 16 5F 00 16 5F 01 16 5F 02 16 5F 03 16 5F 1E D2 04 16 5F 1E D4 05 16 5E 1E D1 06 16 5F 1E D2 07 16 5F 1E D4 08 16 5F 1E D2 09 16 5F 1E D2 0A 16 5F 1E D2 0B 16 5F 1E D1 0C 16 5F 1E D1 0D 16 5F 1E D2 0E 16 5F 1E D1 0F 16 5F 1E D2 10 16 5F 1E D2 11 16 5F 1E D2 12 16 5F 1E D1 13 16 5F 1E D4 14 16 5F 1E D2 15 16 5F 1E D2 16 16 5F 1E D2 17 16 5F 1E D1 18 16 5E 1E D2 19 16 5F 1E D5 1A 16 5F 1E D1 1B 16 5F 1E D2 1C 16 5E 1E D4 1D 16 5F 1E D2 1E 16 5F 1E D2 1F 16 5F 1E D1 20 16 5F 1E D1 21 16 5F 1E D1 22 16 5F 1E D2 23 16 5F 1E D2 24 16 5F 1E D1 25 16 5F 1E D4 26 16 5F 1E D2 27 16 5F 1E D2 28 16 5F 1E D2 29 16 5E 1E D2 2A 16 5F 1E D2 2B 16 5F 1E D2 2C 16 5F 1E D2 2D 16 5F 1E D2 2E 16 5F 1E D4 2F 16 5E 1E D1 30 16 5F 1E D1 31 16 5F 1E D4 32 16 5F 1E D2 33 16 5F 1E D1 34 16 5F 1E D4 35 16 5F 1E D2 36 16 5F 1E D2 37 16 5F 1E D2 38 16 5F 1E D2 39 16 5F 1E D2 3A 16 5F 1E D5 3B 16 5F 1E D2 3C 16 5F 1E D2 3D 16 5E 1E D4 3E 16 5F 1E D1 3F 16 5F 1E D1 40 16 5F 1E D1 41 16 5F 1E D1 42 16 5F 1E D1 43 16 5F 1E D2 44 16 5F 1E D2 45 16 5F 1E D2 46 16 5E 1E D4 47 16 5F 1E D2 48 16 5F 1E D2 49 16 5F 1E D2 4A 16 5F 1E D2 4B 16 5F 1E D1 4C 16 5F 1E D1 4D 16 5F 1E D1 4E 16 5F 1E D2 4F 16 5F 1E D4 50 16 5F 1E D2 51 16 60 1E D2 52 16 5F 1E D4 53 16 5F 1E D2 54 16 5F 1E D1 55 16 5F 1E D2 56 16 5F 1E D1 57 16 5F 1E D1 58 16 5E 1E D2 59 16 5E 1E D1 5A 16 5F 1E D2 5B 16 5F 1E D1 5C 16 5F 1E D2 5D 16 5E 1E D2 5E 16 5E 1E D2 5F 16 5F 1E D1 60 16 5F 1E D2 61 16 5F 1E D1 62 16 5F 1E D1 63 16 5E 1E D2 64 16 5E 1E D4 65 16 5F 1E D2 66 16 5F 1E D2 67 16 5F 1E D4 68 16 5F 1E D2 69 16 5E 1E D2 6A 16 5E 1E D4 6B 16 5E 1E D1 6C 16 5F 1E D2 6D 16 60 1E D2 6E 16 5F 1E D2 6F 16 5F 1E D2 70 16 5F 1E D2 71 16 5F 1E D2 72 16 5F 1E D1 73 16 5E 1E D4 74 16 5F 1E D2 75 16 5F 1E D2 76 16 5F 1E D5 77 16 5F 1E D2 78 16 5F 1E D2 79 16 5F 1E D2 7A 16 5F 1E D4 7B 16 5F 1E D2 7C 16 5F 1E D1 7D 16 5F 1E D1 7E 16 5F 1E D2 7F 16 5F 1E D3 80 16 5F 1E D2 81 16 5F 1E D2 82 16 60 1E D2 83 16 5F 1E D2 84 16 5F 1E D2 85 16 5F 1E D2 86 16 5F 1E D5 87 16 5F 1E D1 88 16 5E 1E D1 89 16 5F 1E D2 8A 16 5E 1E D1 8B 16 5F 1E D2 8C 16 5F 1E D1 8D 16 5F 1E D1 8E 16 5F 1E D1 8F 16 5F 1E D4 90 16 5F 1E D2 91 16 5F 1E D2 92 16 5F 1E D1 93 16 5F 1E D2 94 16 5F 1E D2 95 16 5F 1E D1 96 16 5F 1E D1 97 16 5F 1E D4 98 16 5F 1E D2 99 16 5F 1E D2 9A 16 5F 1E D2 9B 16 5F 1E

chensong0007 发表于 2010-10-7 17:32:21

准确来说,也不能算是乱码,好像是丢了一些数据。难道是串口通信数率过快,20ms的周期也不算快啊?

yemingxp 发表于 2010-10-7 18:02:06

stm32可以做,但估计很累

chensong0007 发表于 2010-10-7 20:05:30

回复【4楼】yemingxp
-----------------------------------------------------------------------

复杂度的话,我认为FPGA是比用ARM来实现要复杂一点,因为它的每一个模块都要自已去做,并组合起来。不像一个ARM芯片,只需配置一些寄存,再整合一下程序流程就行了。其实,ARM的我们这已经有了弄好了一个版本了。

TigerRay 发表于 2010-10-7 20:43:13

回复【5楼】chensong0007
-----------------------------------------------------------------------
哈哈看来你没有怎么用FPGA/CPLD哦,这些东西要是用到这个上面!那是没有说啊!呵呵!

zbcfscc 发表于 2010-10-7 20:47:47

用FPGA效果惊艳

semonpic 发表于 2010-10-7 22:39:20

这个是FPGA的绝对强项

vermon 发表于 2010-10-7 23:02:14

我做过一个控制舵机的
8位寻址,可以控制255个舵机,控制角度,控制转速的   实现起来不是很麻烦   控制用串口或者SPI都可以

jackiezeng 发表于 2010-10-8 00:34:47

建议不要主动发数据给上位机,改为上位机询问的方式~!

chensong0007 发表于 2010-10-8 09:28:07

回复【10楼】jackiezeng
-----------------------------------------------------------------------

回复【9楼】vermon
-----------------------------------------------------------------------

回复【6楼】TigerRay
-----------------------------------------------------------------------

因为上位机只有串口,因此只能靠串口通信,用串口来做查询,冒似要更复杂?

eworker 发表于 2010-10-8 09:51:19

FPGA,最适合。

chensong0007 发表于 2010-10-8 14:33:26

即然多位大侠都推存FPGA,那我就把下面的部分再调下

PWM的采样捕获,以及输出模块都已经弄好,现在开始调串口模块,调好以后软件部分就差不多了
页: [1]
查看完整版本: 多通道PWM捕获以及输出,用FPGA实现好还是用ARM?