-1

我开始尝试与一些外部组件(Skyetek M1 Mini 或 M1 RFID 扫描仪)接口,而不是支持以下协议 TTL、SPI 或 I2C。我想知道您会推荐其中哪一条路线。现场运行的应用程序需要大量的处理时间(一种持续运行的手势匹配算法)并且资源相当昂贵。

任何有关该主题的链接或来源将不胜感激。

我发现的有用链接:

时间:

谢谢你的帮助。


编辑:

如果它有助于我尝试连接的设备是 Skyetek M1M1 mini。平台/CPU 是 Sun SunSPOT

4

2 回答 2

4

TTL是指UART(外围设备自动接收/发送串行流)还是bitbanging(手动设置/重置/切换位)?

我可能会推荐SPI。这是一个相对简单的协议,在主控端,如果必须,你可以对它进行 bit-bang。(但更容易使用内置 SPI 外设。)SPI 主机发送一条时钟线 (SCLK) 和一条数据线 (MOSI = master out slave in),其中数据位在时钟的指定边沿有效线; 它从从机接收数据线(MISO = 主机输入从机输出),其中数据位在时钟线的指定边沿有效。如果您有多个从机,该技术通常是为每个从机设置一条芯片选择 (CS) 线;如果 CS 为低电平,则相关从机处于活动状态,否则它应该忽略时钟/数据信号并且不干扰 MISO 线。SPI 很简单,甚至可以与 HC594 或 HC595 输出寄存器一起使用(将 MOSI 连接到 SER,SCLK 连接到 SCK,CS 到 RCK)如果您的微控制器在输出端口引脚上短路并且您需要一些额外的引脚。如果您有 3 个以上的 SPI 设备,请考虑使用 HC138 作为解码器,从一组地址位和来自微处理器的主芯片选择线生成单个设备 CS 线。(因为一次应该只有一条 CS 线为低电平)

I2C 很痛苦。它的主要优点是您可以在一堆外围设备之间共享 2 线(+ 电源和接地)来完成所有操作。但是您必须处理地址争用和许多其他事情。它也比 SPI 慢,并且具有开路集电极线,因此它的功耗 + 抗噪性与您在哪里使用上拉电阻(或电流源)有关。

UART 可能是最快的解决方案。SPI 具有与往返传播时间相关的速度限制,因为双方使用相同的时钟信号。(信号路径 = 主机更改 SCLK 引脚,从机看到它并通过更改 MISO 引脚做出响应,然后主机在下一个 SCLK 边沿使用 MISO 信号,因此来自从机的信号应该已经到达)在 UART 中,输入和输出比特流是独立的,延迟并不意味着您的吞吐量会降低,除非高级协议是让 UART 端点 A 向 UART 端点 B 发送命令,等待 B 响应,然后发送下一个命令。真正快速的串行流应该考虑使用LVDS保持信号完整性。但是与 SPI 相比,解析 UART 字节有点痛苦。在 SPI 中有明显分隔的数据包,而在 UART 中,您正在处理未分隔的串行流,并且必须通过解析数据本身来完成任何数据包化。

编辑:一个 UART 的另一个优点是,有时处理器可以自动处理大的发送/接收缓冲区,这样你的程序可以排队一大堆要发送的字节,然后在你感觉的时候解析一堆接收到的字节喜欢它。硬件可以处理发送/接收每个单独字节的即时性,并使您的程序不必担心丢失在您的程序执行其他操作时到达的各个字节。

于 2009-01-27T13:47:48.063 回答
1

杰森的回答要详细得多,但我想我会补充一下我的简短经验。

我使用了通过 TTL 连接到 BASIC Stamp 的 SkyTek M1 Micro RFID 读/写模块。我从来没有遇到过任何问题,而且设置比我选择 I2C 时要简单得多。

它只需要微控制器按照 SkyeTek 协议发送简单的串行 TTL 命令。我在我的面包板上安装并在大约 5 分钟内工作。

于 2009-03-11T18:39:03.437 回答