求助:10个串口同时工作

[复制链接]
10573|42
 楼主| 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
 楼主| 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个串口搞定了!!!
lxc806705 发表于 2012-7-24 09:31 | 显示全部楼层
你可以用1个CPLD做10个串口,然后把数据放在FIFO中,单片机来读FIFO
这样是否满足你的要求?如果CPLD资源不够就选个FPGA,便宜的50-60也能搞定
lxc806705 发表于 2012-7-24 10:23 | 显示全部楼层
最终考虑此方案。真是落伍了,还不知道TI竟然出了这么多串口的单片机。!8个串口,再用软件模拟两个(主频能跑到80M)。10个串口搞定了!!!
dlyt_test001 发表于 2012-7-24 09:29
刚才没看到楼上的回复,居然有这么多串口的单片机,长知识了
tm5818638 发表于 2012-7-24 10:29 | 显示全部楼层
awerawer werewa rewa ew 1# dlyt_test001
tm5818638 发表于 2012-7-24 10:30 | 显示全部楼层
不凑 1# dlyt_test001
飞鹰嵌入式 发表于 2012-7-24 10:44 | 显示全部楼层
用485总线可以吧,你可以用串口转485,然后通过总线控制每个器件,每个器件都有固定ID,如果需要参考电路可以与我联系
yuxhuitx 发表于 2012-7-24 12:33 | 显示全部楼层
软件模拟如果碰到并发数据CPU开销肯定有问题,用一片FPGA做简单明了,像XILINX SPANTAN3AN最小的片子也就十几块RMB实现也简单
dqyubsh 发表于 2012-7-24 12:57 | 显示全部楼层
10个串口,还是挺要命的。我不是说硬件,主要难点还是在软件调度。
misra 发表于 2012-7-24 13:07 | 显示全部楼层
28# yuxhuitx
楼主方案选择 要考虑 楼主以前弄过哪些东西  假如从没弄过FPGA,一般来讲  就不会采用FPGA的方案,除非项目周期特长,楼主时间充裕。

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

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

方案很重要。

楼主三思,找到适合自己的最重要  是和别人 未必适合楼主
jinyitong 发表于 2012-7-24 13:43 | 显示全部楼层
为什么非得用串口通信呢?是不是从设备都是串口的,所以主设备必须搞这么多的串口来管理它们?

如果从设备也是自己团队开发的,建议用CAN总线也许更好。
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应该没有压力,做高了就有很大的压力了!!
xcloud 发表于 2012-7-24 14:05 | 显示全部楼层
12个串口

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
Ryanhsiung 发表于 2012-7-24 17:33 | 显示全部楼层
LS强,对了好像CYPRESS的 soc也可以支持多串口啊!
cjseng 发表于 2012-7-24 17:57 | 显示全部楼层
我想,或许专门用一个单片机来模拟10个串口应该可以吧,前提是这10个串口波特率是一致的。用另一个单片机负责数据处理,两个单片机之间可以用串口或其它方式通讯。
 楼主| 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就难以实现。
coody 发表于 2012-7-25 10:20 | 显示全部楼层
速度不高的话,比如不超过9600bps,用MCU来模拟没问题。

否则,用接口IC,比如16C554是4串口的,常用
zzyfidy 发表于 2012-7-25 15:25 | 显示全部楼层
串口转成485,然后在一个既定的通讯协议下工作,每个器件编号,主机有广播,查询,应答等机制....
aihe 发表于 2012-7-25 21:45 | 显示全部楼层
楼主的串口如果几个同时向你MCU发数据,那么处理起来就麻烦了
 楼主| dlyt_test001 发表于 2012-7-26 15:03 | 显示全部楼层
楼主的串口如果几个同时向你MCU发数据,那么处理起来就麻烦了
aihe 发表于 2012-7-25 21:45

没有问题!只需要用中断把数据保存起来。在循环程序里处理就可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部