微控制器接口

时间:2012-09-19 07:56:42

标签: embedded microprocessors

我是嵌入式编程领域的新手,我正在寻找有关使用I2C,USB,UART,CAN等与微控制器连接的信息。是否有人知道有关此主题的任何好的链接,书籍,教程?由于我是这个主题的真正新手,我更喜欢它是否尽可能基本。

3 个答案:

答案 0 :(得分:3)

维基百科确实是一个很好的开始,可以学习围绕这些机制的基础知识。

一旦掌握了,我建议您查看具有上述功能的微控制器的实际数据表和用户指南。例如,this 16位PIC具有专用的UART,I2C和SPI总线。查看文档的相关部分,掌握了对基本原理的新知识,您将开始了解如何设计使用它们的系统。

下一步是为这样的设备购买开发板,然后使用示例代码(其中有很多代码),为自己编写一些数据链。顺便提一下,UART肯定是最容易测试的,因为所有PC都可以使用来自终端的RS-232协议进行传输,因此在这种情况下,您可以编写环回代码来相对轻松地传输和接收字符。但是,对于I2C和SPI,我认为您需要购买专用的host dongle以允许您使用协议进行传输,尽管我认为Windows 8可能会引入本机支持(但不要引用我的内容)。

我没有使用CAN实现数据链接,所以我不能具体评论,虽然我只是做了一个快速的谷歌搜索,并且有一个支持它的PIC系列,所以我相信你可以采用类似的方法。至于USB,我认为它有点像黑色艺术,所以我会留下其他人回答那个 - 虽然我知道你可以获得PIC的USB软件堆栈,所以再次,可能会遵循类似的方法

最后,我只提到PIC作为微控制器的示例。如果您对一般的微控制器不熟悉,您很快就会意识到Microchip,TI和Atmel等公司的所有主要微控制器系列通常都采用相同的设计,因此我会浏览并选择您的文档系列。最熟悉(或者至少不舒服,正如Martin James所建议的那样!)。

答案 1 :(得分:3)

由于您已经是桌面开发人员,因此您可能会跳到中间的某个位置。下载您计划使用的控制器的用户手册。从制造商等网站获取一个更简单的外围设备的示例代码 - UART很好。

获得开发板和Eclipse / Crossworks /支持您的电路板并开始工作的任何开发系统 - 闪光LED,UART回声等。不要尝试首先使用多任务和中断驱动程序 - 只需使用尽可能少的代码行轮询UART。为什么 - 因为只需要开发设置来编译,链接,下载和运行一行代码本身就是一项相当大的工作,没有任何复杂代码的复杂性。在有效地编写/调试控制器的任何代码之前,首先要进行开发设置和硬件调试。只是让“闪烁”的代码只是闪烁一个板载LED工作是一个巨大的进步:)

大多数控制器都有专门的小组/博客,无论是在uC制造商网站上还是从它们链接 - 加入他们。

如果你想有效地进入这个目标,那就买一块板子并尝试让它做点什么 - 没有更好的方法。一旦你可以让LED闪光灯或UART发出一串字符,你就可以参加比赛了。)

开发简单的“blinky”或UART轮询功能不会浪费 - 稍后当您拥有更复杂的代码时,可以继续使用它们。闪烁LED(延迟循环被操作系统休眠替换)是一个很好的指标,代码是运行的,我一直把它保存在交付的系统上。 UART轮询也很有用 - 它将在没有任何中断的情况下运行,因此您可以从数据/预取/任何中止向量调用它来发出许多“CRITICAL ERROR - SYSTEM HALTED”消息,您将在持续开发期间获得这些消息:)< / p>

答案 2 :(得分:2)

在大多数情况下,您打算使用的微控制器的数据手册或参考手册就是您所需要的。每个供应商都将以不同的方式实现这些接口,因此这是您唯一的低级编程信息的权威来源。

I 2 C和UART相对简单,没有标准的高级协议栈;这将由您或您可能连接的设备定义。您的微控制器供应商几乎可以获得示例代码和/或应用笔记。

CAN更复杂,通常CAN网络使用更高级别的应用程序协议,其中有多个用于不同的应用程序域,如CANopen,NMEA2000,DeviceNet,IEC J1939等。大多数情况下,第三方库是实现应用程序协议栈的最具成本效益的方法,但如果网络仅包含您正在实现的设备,则可能不需要这种复杂性。您的微控制器供应商可能也会有例子。

USB由USB Implementers Forum强烈定义,协议栈非常重要。大多数具有片上USB接口的微控制器供应商将至少为设备级USB提供示例代码和应用笔记。 USB主机堆栈更复杂,再次使用第三方库(相对昂贵)是最快的上市方式。否则您将不得不支付USB IF的费用可能会使您自己的主机堆栈编写成本不低。即使对于USB设备接口,您也需要USB ID的2000美元USB供应商ID。一些微控制器和库供应商将允许您以很少或免费的方式将其供应商ID用于定义的产品ID子集,但您可能必须在数量方面成为重要客户。对于内部实验,你可能在没有官方VID的情况下逃脱,但这样的产品无法在商业上发布。