lang02-7 发表于 2012-9-26 23:31:27

CPLD通过总线扩展串口的思路

在开发产品时处理器串口不够用,请问大侠们,可以通过CPLD扩展串口吗,即CPLD对内连接CPU的总线,对外模拟出串口连接外设,CPLD有这样的功能没,应该是容易做到的吧,需要注意些什么?
此外,能否通过CPLD模拟CAN等其他功能的CPU引脚?
另求大家推荐一款性价比高点的CPLD,功能无需复杂,扩展一两个串口及一两个个其他功能即可,谢过!

zkf0100007 发表于 2012-9-26 23:33:49

模拟串口当然可以,挺简单的,可以考虑xilinx的coolrunner系列

lang02-7 发表于 2012-9-26 23:41:08

zkf0100007 发表于 2012-9-26 23:33 static/image/common/back.gif
模拟串口当然可以,挺简单的,可以考虑xilinx的coolrunner系列

那CPLD一定是接到数据总线吗,接CPU普通IO口是否可以呢?

zxq6 发表于 2012-9-27 07:24:16

不用,可以考虑ssi2uart

lang02-7 发表于 2012-9-27 08:56:12

zxq6 发表于 2012-9-27 07:24 static/image/common/back.gif
不用,可以考虑ssi2uart

这个ssi2uart是什么呢,给点介绍或链接呀!

zxq6 发表于 2012-9-27 09:20:52

lang02-7 发表于 2012-9-27 08:56 static/image/common/back.gif
这个ssi2uart是什么呢,给点介绍或链接呀!

ssi to uart,手机发的,简写了。居然没能让你看懂,罪过罪过。

lang02-7 发表于 2012-9-27 12:16:58

zxq6 发表于 2012-9-27 09:20 static/image/common/back.gif
ssi to uart,手机发的,简写了。居然没能让你看懂,罪过罪过。

看是看懂了,刚没搜到,我再搜搜看吧!

y595906642 发表于 2012-9-27 12:19:19

数据发送时扩展没问题,接收就难了。

lang02-7 发表于 2012-9-27 12:42:56

y595906642 发表于 2012-9-27 12:19 static/image/common/back.gif
数据发送时扩展没问题,接收就难了。

我是没研究过这个,为什么接收会难呢,就是不停的检测吧,有接收到数据时,就做处理,向CPU端发送吧?

y595906642 发表于 2012-9-27 13:05:56

lang02-7 发表于 2012-9-27 12:42 static/image/common/back.gif
我是没研究过这个,为什么接收会难呢,就是不停的检测吧,有接收到数据时,就做处理,向CPU端发送吧? ...

看错了,以为你只是简单的通过MUX接到多路串口
原来是用PLD做出串口的逻辑,
那你需要扩展几路呢?
PLD资源比较少,要看你具体的需求了。

lang02-7 发表于 2012-9-27 13:12:53

y595906642 发表于 2012-9-27 13:05 static/image/common/back.gif
看错了,以为你只是简单的通过MUX接到多路串口
原来是用PLD做出串口的逻辑,
那你需要扩展几路呢?


扩展2-3路串口就行,如果还能扩展CAN总线最好,请问有什么建议或好的方案吗?

fishplj2000 发表于 2012-9-27 13:13:16

EPM240/570应该够2-3个简单串口了
需要对MCU总线译码,抓取发送数据到内部缓存,然后再发送出去
不过接收的话,你需要给MCU一个标志位,让它知道收到数据了,快过来取

zxq6 发表于 2012-9-27 14:28:27

lang02-7 发表于 2012-9-27 12:16 static/image/common/back.gif
看是看懂了,刚没搜到,我再搜搜看吧!

其实你这个已经属于时序逻辑的范畴,建议选择fpga会比较好。
当然,epm240应该也能够完成你的要求。

lang02-7 发表于 2012-9-27 19:23:25

zxq6 发表于 2012-9-27 14:28 static/image/common/back.gif
其实你这个已经属于时序逻辑的范畴,建议选择fpga会比较好。
当然,epm240应该也能够完成你的要求。 ...

fpga与cpld最主要的区别是哪里呢?功能有什么不同呢

msdy 发表于 2012-9-27 19:29:24

用CPLD扩展串口肯定是可以行的,MCU和CPLD通迅可采用SPI或者并行通行

msdy 发表于 2012-9-27 19:29:53

一点难度也没有

gaolf_2012 发表于 2012-9-27 20:15:42

新出了一款新片,ch438,并口转8串口,128bytefifo
2、特点        
        ● 完全独立的八个异步串口,兼容16C550、16C552、16C554 及16C750 并且有所增强。
● 支持5、6、7 或者8 个数据位以及1 或者2 个停止位。
● 支持奇、偶、无校验、空白0、标志1 等校验方式。
● 可编程通讯波特率,支持115200bps 以及最高达4Mbps 的通讯波特率。
● 内置128 字节的FIFO 先进先出缓冲器,支持4 个FIFO 触发级。
● 支持MODEM调制解调器信号CTS、DSR、RI、DCD、DTR、RTS,可由75232芯片转成RS232电平。
● 支持硬件流控制信号CTS 和RTS 自动握手和自动传输速率控制,兼容TL16C550C。
● 支持串口帧错误检测、支持Break 线路间隔检测。
● 内置时钟振荡器,支持频率范围0.9216MHz~32MHz 的晶体,默认使用22.1184MHz 晶体。
● 提供10MB 速度的8 位被动并行接口连接单片机。
● 并行接口包含8 位数据总线,7 位地址,3 线控制:片选输入、写选通以及可选的读选通。
● 支持直接地址和复用地址方式:直接输入7位地址或者由ALE 信号控制从数据总线锁存地址。
● 中断输出引脚是可选连接,低电平有效,可以通过查询寄存器中的中断标志位代替。
● 支持5V 或者3.3V 电源电压,支持串口低功耗睡眠模式。
● 提供LQFP-44 和LQFP-128 无铅封装,兼容RoHS。        
                       

zxq6 发表于 2012-9-27 22:03:33

lang02-7 发表于 2012-9-27 19:23 static/image/common/back.gif
fpga与cpld最主要的区别是哪里呢?功能有什么不同呢

其实,功能都差不多。简单的应用也差不多
区别就是,fpga适合做时序逻辑,cpld适合做组合逻辑。如果你没用过这两种,就这么跟你说也不会太明白的。

hanjiang 发表于 2012-9-27 23:03:12

用FPGA比较好,可以做较大缓存,接受完成后起中断给MCU通过总线读取
页: [1]
查看完整版本: CPLD通过总线扩展串口的思路