搜索
bottom↓
回复: 26

STM32+uCOS +IO模拟10路串口好不好做

[复制链接]

出0入0汤圆

发表于 2014-6-23 10:53:34 | 显示全部楼层 |阅读模式
因为产品要10路串口通信,STM32最多提供了5路串口,需要另外模拟10路,我的想法是IO+定时器来做
思路:发送的时候简单,波特率是4800,定时中断时间是1/4800 S,在中断服务函数中发送bit ,接收貌似麻烦一些,可以采用外部中断引脚来识别起始位的到来,否则就要一直查询,CPU太累了, 识别了起始位,就可以用定时器的中断服务函数进行接收管脚的采样,大伙看看方便实现吗

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2014-6-23 10:57:37 | 显示全部楼层
楼主可以看看LPC43xx系列或LPC185x系列的,上面有个SGPIO可以很容易实现串口,而且是不耗多少cpu的,可以扩展出很多串口。SGPIO还可以做其他事情哦,不只是串口。

出0入93汤圆

发表于 2014-6-23 10:59:26 | 显示全部楼层
波特率都是固定4800用一个定时器自由计数就够了,IO只需要有上升下降中断就行了,是所有位而不仅仅是起始位。不查询,每一次中断的时间和前一次进行比较就知道该电平接受了几位了。

出0入0汤圆

 楼主| 发表于 2014-6-23 11:00:42 | 显示全部楼层
nongxiaoming 发表于 2014-6-23 10:57
楼主可以看看LPC43xx系列或LPC185x系列的,上面有个SGPIO可以很容易实现串口,而且是不耗多少cpu的,可以扩 ...

还有这么高级的东西,能否筹够10路UART吗,和硬件串口实现起来有什么区别

出0入0汤圆

 楼主| 发表于 2014-6-23 11:03:44 | 显示全部楼层
takashiki 发表于 2014-6-23 10:59
波特率都是固定4800用一个定时器自由计数就够了,IO只需要有上升下降中断就行了,是所有位而不仅仅是起始位 ...

如果都靠IO外部中断的话,如果我接收的是0X00或者0XFF,那么一个字节都不会有IO翻转,那么就不存在上升和下降中断,实现不了接收,必须识别起始位,然后定时采样

出0入0汤圆

发表于 2014-6-23 11:07:59 | 显示全部楼层
用富士通的,大部分自带8路串口,个别型号自带14路

TI的流明也是自带10路,不过TI好像不做这个市场了

出0入93汤圆

发表于 2014-6-23 11:15:13 | 显示全部楼层
llq_ARM 发表于 2014-6-23 11:03
如果都靠IO外部中断的话,如果我接收的是0X00或者0XFF,那么一个字节都不会有IO翻转,那么就不存在上升和 ...

0X00或者0XFF的位翻转你自己都能模拟串口了这个还会不懂?起始位是0,停止位是1,就决定了一个数据帧必定会进行翻转。
按8N1的方式:
0x00:111111(总线空闲) 0(起始位) 00000000 1(停止位)111111111(总线空闲),看到没有,从前一次下降沿到后一次上升沿一共经历了9个位时间,最好采集了。
0xFF:111111                   0                11111111 1               111111111,只经历了1位的起始位,照样可以采集出来。整个一个字节还需要配合超时。
要是设置了校验位甚至连超时都不需要,全1的那是空闲帧,全0的那是断开帧,都不是有效的数据帧……

出0入0汤圆

发表于 2014-6-23 11:25:44 | 显示全部楼层
记住GM8125

出0入0汤圆

 楼主| 发表于 2014-6-23 11:38:55 | 显示全部楼层
takashiki 发表于 2014-6-23 11:15
0X00或者0XFF的位翻转你自己都能模拟串口了这个还会不懂?起始位是0,停止位是1,就决定了一个数据帧必定 ...

感谢这位朋友的耐心解答,我的意思是总线空闲1,起始位0,那么接收0xf0,总线的状态应该是start(0) data(11110000) end(1) IO中断能够识别start(0) ,data(11110000)的采样需要用到定时周期采样,采样的结果是11110000,你的你的意思是不用定时采样也能实现??

出0入0汤圆

 楼主| 发表于 2014-6-23 11:40:12 | 显示全部楼层
3DA502 发表于 2014-6-23 11:07
用富士通的,大部分自带8路串口,个别型号自带14路

TI的流明也是自带10路,不过TI好像不做这个市场了 ...

看看去,有没有具体型号

出0入0汤圆

发表于 2014-6-23 11:40:51 | 显示全部楼层
fm3确实基本上都是8路uart也蛮便宜的,推荐使用

出0入0汤圆

发表于 2014-6-23 11:44:07 | 显示全部楼层
我感觉你很难实现,,还不如用FPGA,,

出0入93汤圆

发表于 2014-6-23 11:52:02 | 显示全部楼层
llq_ARM 发表于 2014-6-23 11:38
感谢这位朋友的耐心解答,我的意思是总线空闲1,起始位0,那么接收0xf0,总线的状态应该是start(0) data(1 ...

是的,可以实现,但是串口接收的协议不好做。
实际上,只通过边沿中断可以采样到起始位0,然后4位1,然后4位0,然后通过超时可以算出停止位。
问题是,你会不会把后来采集到的4个0当做起始位这是你自己需要关注的事情了,我只能保证仅仅通过中断和超时完全可以采集到你所需要的数据。
为什么可以做到,是因为你的波特率固定在4800,时基是确定的。如果波特率可变,就稍微麻烦一些。
要是波形的毛刺多,我这个方法就不合适了,只能老老实实的按规矩定时采样了。
头像被屏蔽

出0入0汤圆

发表于 2014-6-23 11:54:39 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2014-6-23 16:30:45 | 显示全部楼层
五路串口,分时复用即可。主从分址,按址取数!

出0入0汤圆

发表于 2014-6-24 07:49:39 | 显示全部楼层
那个叫alphascale的不是带10个uart吗?非广告贴。
楼主坛子里搜一下

出0入4汤圆

发表于 2014-6-24 07:58:28 | 显示全部楼层
用两个64脚的stm32来做

出0入0汤圆

发表于 2014-6-24 07:58:55 | 显示全部楼层
你另外的任务多吗?接收中断应该至少3x比特率或4x,以提高准确性。4800bps也不算高。中断可以统一读取,比如连续5个中断读取后,任务中循环5次处理就可以了。

出0入0汤圆

发表于 2014-6-24 07:59:20 | 显示全部楼层
Atmel也有多个自定义串口功能的IO,模拟的太消耗资源了.不如直接用FPGA或是CPLD来做串口

出0入0汤圆

发表于 2014-6-24 07:59:44 | 显示全部楼层
用SPI扩展多路串口芯片也可以的

出0入0汤圆

发表于 2014-6-24 08:04:35 | 显示全部楼层
如果你的STM32是主控端,串口协议采用轮询模式,那就直接用电子开关将某些串口复用就行了,我原来一个设备也是需要很多串口,我的机器是主控,采用轮询机制,用CD4052扩了4个串口。

出0入0汤圆

发表于 2014-6-24 08:34:44 | 显示全部楼层
为什么不直接用串口IC?或者用CPLD?非要模拟串口,然后用光CPU资源。

出0入0汤圆

发表于 2014-6-24 09:35:48 | 显示全部楼层
ASM9260T 现成的10个独立的串口哟。推荐考虑。代码什么的都是齐全的。感兴趣,可以与我签名中的联系方式联系。

出0入0汤圆

发表于 2014-6-24 12:48:53 | 显示全部楼层
有时候讲一讲背景,上下文,有什么不可以呢,怕泄密吗?一上来就是这种高度提炼过的问题,你是想得到这种问题的标准答案吗

出0入0汤圆

发表于 2014-6-30 20:23:51 | 显示全部楼层
为什么不用串口扩展芯片TL16C554 ?

出0入0汤圆

发表于 2014-6-30 21:28:13 | 显示全部楼层
确实不好做的。

出0入4汤圆

发表于 2014-7-1 13:25:29 | 显示全部楼层
同样考虑两个方案 多加一个stm32  或者ch438芯片,
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 22:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表