javenreal 发表于 2009-7-11 23:45:05

使用epm240,我下面的思路能实现吗?

我是一个单片机新手,对CPLD更是不懂。现在打算学习一下,准备将来在实际中使用。

请教一下,我的这样的思路能实现吗?

1,单片机有10个io口和cpld相连,其中8个用于并行传输数据,另外2个作为标志信息。

2,单片机把一些字节(比如一次传8个)传递给cpld。传递过程中不用协议,单片机只是定时(比如50uS一次)输出到io口,cpld就按这个时间取。

3,cpld取得后,就串行的把这8个字节通过另外8个位于cpld上的io输出(模拟SPI时序)。输出完成后把标志io置高电平。

4,单片机第一次输出完后,就等待标志口。当标志口为高时就继续输出。


之前,这8个字节的输出,是直接用单片机io口完成的,但是速度太慢。

如果改成以上所述的并行传输,请教cpld的输出速度能比单片机快多少?(单片机以AVR 16M为例)

当然,上面所说的单片机和cpld之间的时序可能还有些问题,需要完善,但是目前最要紧的是性能上的评估。

holycat 发表于 2009-7-16 19:12:12

“单片机只是定时(比如50uS一次)输出到io口,cpld就按这个时间取”

——这个不太好办吧?没有可靠的同步手段,双方计时会出误差。想做简易并行传输的话,其实可参考老式并口打印鸡的做法(上网搜索Centronics):单片机置好数据后发一个脉冲,CPLD见脉冲就处理一次,也不必给单片机回信。不用怕丢失数据,CPLD的速度单片鸡是根本赶不上的。

bad_fpga 发表于 2009-7-16 20:29:08

同意楼上的,你的50US不一定准呢~~

javenreal 发表于 2009-7-16 20:53:23

终于有人回复了哦,呵呵

ppa2001 发表于 2009-7-16 21:03:39

你用单片机输出数据后,发给脉冲给CPLD,CPLD读入数据,输出SPI后,在给单片机一个脉冲~就可以了

javenreal 发表于 2009-7-18 13:39:19

看了我的思路有希望了,打算买个开发板,学习。。。
页: [1]
查看完整版本: 使用epm240,我下面的思路能实现吗?