打印

求助:10个串口同时工作

[复制链接]
楼主: dlyt_test001
手机看帖
扫描二维码
随时随地手机跟帖
21
dlyt_test001|  楼主 | 2012-7-24 08:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
本帖最后由 dlyt_test001 于 2012-7-24 08:58 编辑

感谢这么多人关注。对各位的回复补充一个说明,可能我之前没说清楚。
1、对于2楼、9楼、15楼。软件串口的方案。我之前也做过,不过只模拟一个串口。对于9600的波特率,感觉CPU负荷太大。现在模拟10个串口,对于我的主频要求太高了。
2、对于3楼、5楼、6楼。总线方案。在我的项目中行不通。因为10个串口的通信对像不是我控制的,那10个对像是不定时的和我通信。不能做类似RS485的主从通信。
3、对于4楼、12楼,通信数据的处理问题。我的10个从站不定时和我通信,9600波特率,约1毫秒1个字节。留给每个从站处理1个字节的时间是0.1毫秒——这是最坏的情况。那10个从站还有一定的时间间隔,所以处理时间不是问题。
4、对于7楼,CPLD:综合过后,如7000系列,做两个串口就要很多资源了;FPGA,到是可以,不过,以我的资源占用率,选个合适的,要70、80元。价格接受不了。
5、对于8楼、14楼、18楼,多单片机方案。我感觉很好。现在就去查一下,TI的相关单片机。
6、对于19楼。我去查一下这个片子,没听说过啊!有点没伍了!:L

使用特权

评论回复
22
dlyt_test001|  楼主 | 2012-7-24 09:29 | 只看该作者
本帖最后由 dlyt_test001 于 2012-7-24 09:31 编辑
TI 的M4 自带8个串口,再软件模拟两个,
10个就够了……
用MCU 加串口扩展芯片也行,有4串口的扩两片,也是8个了
yytdragon 发表于 2012-7-23 21:18


最终考虑此方案。真是落伍了,还不知道TI竟然出了这么多串口的单片机。!8个串口,再用软件模拟两个(主频能跑到80M)。10个串口搞定了!!!

使用特权

评论回复
23
lxc806705| | 2012-7-24 09:31 | 只看该作者
你可以用1个CPLD做10个串口,然后把数据放在FIFO中,单片机来读FIFO
这样是否满足你的要求?如果CPLD资源不够就选个FPGA,便宜的50-60也能搞定

使用特权

评论回复
24
lxc806705| | 2012-7-24 10:23 | 只看该作者
最终考虑此方案。真是落伍了,还不知道TI竟然出了这么多串口的单片机。!8个串口,再用软件模拟两个(主频能跑到80M)。10个串口搞定了!!!
dlyt_test001 发表于 2012-7-24 09:29
刚才没看到楼上的回复,居然有这么多串口的单片机,长知识了

使用特权

评论回复
25
tm5818638| | 2012-7-24 10:29 | 只看该作者
awerawer werewa rewa ew 1# dlyt_test001

使用特权

评论回复
26
tm5818638| | 2012-7-24 10:30 | 只看该作者
不凑 1# dlyt_test001

使用特权

评论回复
27
飞鹰嵌入式| | 2012-7-24 10:44 | 只看该作者
用485总线可以吧,你可以用串口转485,然后通过总线控制每个器件,每个器件都有固定ID,如果需要参考电路可以与我联系

使用特权

评论回复
28
yuxhuitx| | 2012-7-24 12:33 | 只看该作者
软件模拟如果碰到并发数据CPU开销肯定有问题,用一片FPGA做简单明了,像XILINX SPANTAN3AN最小的片子也就十几块RMB实现也简单

使用特权

评论回复
29
dqyubsh| | 2012-7-24 12:57 | 只看该作者
10个串口,还是挺要命的。我不是说硬件,主要难点还是在软件调度。

使用特权

评论回复
30
misra| | 2012-7-24 13:07 | 只看该作者
28# yuxhuitx
楼主方案选择 要考虑 楼主以前弄过哪些东西  假如从没弄过FPGA,一般来讲  就不会采用FPGA的方案,除非项目周期特长,楼主时间充裕。

我刚才在想 为什么只用一个CPU呢?为什么不用多个CPU呢?比如两个。

STM32好像有6个串口的片子。 然后把两个STM32用CAN啥的 连在一起 I2C SPI。

方案很重要。

楼主三思,找到适合自己的最重要  是和别人 未必适合楼主

使用特权

评论回复
31
jinyitong| | 2012-7-24 13:43 | 只看该作者
为什么非得用串口通信呢?是不是从设备都是串口的,所以主设备必须搞这么多的串口来管理它们?

如果从设备也是自己团队开发的,建议用CAN总线也许更好。

使用特权

评论回复
32
Ryanhsiung| | 2012-7-24 13:57 | 只看该作者
不用485协议呢???
------------------
很多时候还真的由不得你。

8串口的MCU 1是难买,2是高贵吧,不会有2串口来得有生命力。人家要是停产了怎么办? ...
李冬发 发表于 2012-7-24 08:48

高贵,是比较贵!
   M4的内核,比较贵,不过TI的一般不会那么容易停产吧!

对了还有一个方案,有一个1扩5的的芯片,两个串口的芯片好找吧!
GM8125G,2*5=10,正好够用。
1扩5,每个串口都是独立的,但速率只是1/6! 做9600应该没有压力,做高了就有很大的压力了!!

使用特权

评论回复
33
xcloud| | 2012-7-24 14:05 | 只看该作者
12个串口

rx630_block.gif (25.57 KB )

rx630_block.gif

使用特权

评论回复
34
Ryanhsiung| | 2012-7-24 17:33 | 只看该作者
LS强,对了好像CYPRESS的 soc也可以支持多串口啊!

使用特权

评论回复
35
cjseng| | 2012-7-24 17:57 | 只看该作者
我想,或许专门用一个单片机来模拟10个串口应该可以吧,前提是这10个串口波特率是一致的。用另一个单片机负责数据处理,两个单片机之间可以用串口或其它方式通讯。

使用特权

评论回复
36
dlyt_test001|  楼主 | 2012-7-25 08:43 | 只看该作者
高贵,是比较贵!
   M4的内核,比较贵,不过TI的一般不会那么容易停产吧!

对了还有一个方案,有一个1扩5的的芯片,两个串口的芯片好找吧!
GM8125G,2*5=10,正好够用。
1扩5,每个串口都是独立的,但速率只是1/6 ...
Ryanhsiung 发表于 2012-7-24 13:57

这个方案也在考虑之中,不过,GM8125,是不是5个串口的波特率不能独立任意设置。只能使用母口的波特率,或母口的分频波特率?
我的项目中,还要考虑间容和扩展。需要保留对10个串口中每个串口独立设置波特率的功能。
比如:我需要设置1-6号串口的波特率是9600;7-10号串口波特率是14400。用两片GM8125G就难以实现。

使用特权

评论回复
37
coody| | 2012-7-25 10:20 | 只看该作者
速度不高的话,比如不超过9600bps,用MCU来模拟没问题。

否则,用接口IC,比如16C554是4串口的,常用

使用特权

评论回复
38
zzyfidy| | 2012-7-25 15:25 | 只看该作者
串口转成485,然后在一个既定的通讯协议下工作,每个器件编号,主机有广播,查询,应答等机制....

使用特权

评论回复
39
aihe| | 2012-7-25 21:45 | 只看该作者
楼主的串口如果几个同时向你MCU发数据,那么处理起来就麻烦了

使用特权

评论回复
40
dlyt_test001|  楼主 | 2012-7-26 15:03 | 只看该作者
楼主的串口如果几个同时向你MCU发数据,那么处理起来就麻烦了
aihe 发表于 2012-7-25 21:45

没有问题!只需要用中断把数据保存起来。在循环程序里处理就可以了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则