Embedded 微控制器接口

Embedded 微控制器接口,embedded,microprocessors,Embedded,Microprocessors,我是嵌入式编程的新手,我正在寻找有关使用I2C、USB、UART、CAN等与微控制器接口的信息。有人知道关于这个主题的好链接、书籍、教程吗?因为我对这门学科是一个真正的新手,所以我更喜欢它尽可能的基础。维基百科确实是一个很好的起点,可以学习这些机制的基础知识 一旦你掌握了,我建议你看一看具有这些特性的微控制器的实际数据表和用户指南。例如,16位PIC具有专用UART、I2C和SPI总线。查看文档的相关部分,结合您对基本原则的新知识,您将开始了解如何设计使用这些原则的系统 下一步是为这样一个设备购

我是嵌入式编程的新手,我正在寻找有关使用I2C、USB、UART、CAN等与微控制器接口的信息。有人知道关于这个主题的好链接、书籍、教程吗?因为我对这门学科是一个真正的新手,所以我更喜欢它尽可能的基础。

维基百科确实是一个很好的起点,可以学习这些机制的基础知识

一旦你掌握了,我建议你看一看具有这些特性的微控制器的实际数据表和用户指南。例如,16位PIC具有专用UART、I2C和SPI总线。查看文档的相关部分,结合您对基本原则的新知识,您将开始了解如何设计使用这些原则的系统

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

我还没有使用CAN实现datalink,所以我不能具体评论,尽管我只是做了一个快速的Google搜索,并且有一个PIC系列支持它,所以我相信你可以采用类似的方法。至于USB,我认为它有点黑艺术,所以我会让其他人来回答这个问题-虽然我知道你可以得到一个USB软件栈的图片,所以,再次,类似的方法可能会遵循。
最后,我只提到PICs作为微控制器的一个例子。如果您不熟悉微控制器,您很快就会意识到,Microchip、TI和Atmel等公司的所有主要微控制器系列通常都采用相同的设计,因此我会浏览并选择您最熟悉的系列文档(或不太不舒服,正如Martin James所建议的)。

< P>因为你已经是一个桌面开发人员,你可以在中间的某个地方跳转。下载你打算使用的控制器的用户手册。从制造商等网站获得一个简单的外围设备的范例代码。UART是好的。 获得一个开发板和一个Eclipse/Crossworks/任何支持你的开发板的开发系统,并让它工作起来-flash LED、UART echo或类似的东西。不要尝试首先使用多任务器和中断驱动程序-只需要用尽可能少的代码行轮询UART。为什么-因为只是为了编译一个开发设置,链接、下载和运行一行代码本身就是一项相当大的练习,不会因为复杂的代码而产生任何复杂的问题。在有效地为控制器编写/调试任何代码之前,您首先要调试您的开发设置和硬件。只需获得仅闪烁车载LED的“闪烁”代码即可工作,这是向前迈出的一大步:)

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

如果你想有效地进入这一领域,那就准备一块木板,试着让它做点什么——没有更好的办法了。一旦你能让LED闪烁或UART发出一串字符,你就可以开始比赛了:)


开发简单的“blinky”或UART轮询函数不会浪费时间——以后当您有更复杂的代码时,您可以继续使用它们。闪烁LED(延迟循环被操作系统睡眠所取代)是一个很好的指示器,表明代码正在运行,我一直将其保留在交付的系统中。UART轮询也很有用-它将在没有任何中断的情况下运行,因此您可以从数据/预取/任何中止向量调用它,以发出许多“严重错误-系统暂停”消息,您将在正在进行的开发过程中收到这些消息:)

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

I2C和UART相对简单,没有标准的高级协议栈;这将由您或您可能连接到的设备定义。您的微控制器供应商几乎一定会有示例代码和/或应用说明

CAN更为复杂,通常CAN网络使用更高级别的应用协议,不同的应用领域(如CANopen、NMEA2000、DeviceNet、IEC J1939等)有多个应用协议。通常,第三方库是实现应用程序协议堆栈的最经济有效的方法,但如果网络仅由您正在实现的设备组成,则可能不需要这种复杂性。同样,您的微控制器供应商可能会有一些例子

USB的定义非常严格,协议栈也非常重要。大多数具有片上USB接口的微控制器供应商将提供至少设备级USB的示例代码和应用说明。USB主机堆栈更复杂,使用第三方库(相对昂贵)也是最快的上市方式。如果编写自己的主机堆栈不会降低成本,您将不得不支付USB的费用。即使是USB设备接口,如果需要,您也需要USB供应商ID,价格为2000美元。一些微控制器和库供应商将允许您使用他们的供应商ID来定义产品ID子集,而成本很低或没有成本,但您可能必须是数量方面的重要客户。对于内部实验,