我应该使用什么微控制器?


10

我正在尝试寻找最适合我的计算机程序与现实世界通信的微控制器程序包。我希望有大量的I / O引脚(到目前为止,我只需要64个数字引脚,没有比模拟和PWM更好的了),我可以通过从运行在CPU上的程序调用函数来直接进行读写。

我不想将程序下载到微控制器本身上运行,而是希望将某些东西简单地插入我的USB并给我一堆可以由C ++程序控制的CPU控制的I / O引脚。

什么是最适合我的微控制器包?我希望它的价格相对便宜,但要面向未来,因为它可以运行USB,并具有适用于Windows 7等现代OS的64位驱动程序。以及巨大的奖金(未来扩展)。

编辑:我不需要高采样率(也许10 Hz的读取输入,1 kHz的输出信号),并且大多数引脚仅用于输出。我正在使用全新的计算机(核心i7 860),因此,即使采样效率较低或较慢,也应该可以(仅使用一个专用于I / O的线程,并使主程序与之通信)。

我也不需要单个微控制器封装上的所有64个I / O引脚。如果我可以同时连接许多微控制器程序包,那也可以工作(实际上,能够连接许多较小的微控制器程序包是理想的,这意味着扩展很容易)。

我已经看过了:http : //www.schmalzhaus.com/UBW32/index.html

有没有人有过类似的经历?知道是否可行吗?主要担心的是运行程序的是微控制器,而不是我的CPU。


1
您需要什么数据速率?
凯文·维米尔

@reemrevnivek:我估计我需要大约10 Hz的输入采样率和1 kHz的输出采样率,非常慢​​的I / O。
Faken

对于您而言,您发现的项目可能会运行良好。它是一个已经组装在一起的系统(无需焊接总是很不错),并且似乎具有非常基本的固件,可让您访问所需的所有端口。低采样率意味着串行连接将运行良好。40美元不会让您破产,对吗?如果是这样,请在尝试更昂贵的解决方案之前尝试一下。
Wouter Simons 2010年

Answers:


4

失败

据我所知,UBW32是一个很好的选择。只要您对3.3VI / O没问题(某些可以忍受5V,但并非全部),它将完全满足您的需求。它价格便宜(40美元),并且很容易使用任何支持的语言进行交流串行端口(几乎全部都是串行端口-Basic,C,C#,Processing等)

您可以将76个I / O引脚中的任何一个用作输入或输出。出厂的库存固件将使您可以做自己想做的事情,而嵌入式方面则不需要编程。通过USB(仅10Hz)将数据传输到PC不会有问题。使输出达到1KHz可能也很好。

如果您有任何疑问,请告诉我。很高兴为您提供帮助。

* Brian Schmalz UBW32创建者


尼斯董事会,先生。Schmalz
Wouter Simons's

好吧,这绝对令人感到安慰。成为一名机械工程师,一开始对编程了解甚少,对电子学则了解甚少;我需要一个与C / C ++交互的预构建平台,以解决电子和微控制器编程方面的问题。谢谢你的帮助!
Faken

9

我建议使用Teensy ++ 2.0(或任何其他AT90USB1286开发板)

128KB闪存,8KB RAM,46个I / O引脚,8个模拟输入

$ 24

Teensy板由USB供电,可以提供虚拟COM端口(USB通信设备类)。您可以将此串行链接用于您的引脚控制协议。在Windows,OSX和Linux上,无需任何自定义驱动程序就可以工作。

要创建引脚控制固件,请使用TeensyDuino或普通的旧C。

当发生撞击时,瓶颈将是微控制器的USB接口。因此,您可能希望将诸如I2C和SPI之类的协议移交给微控制器。为此,您可以使用我的Bus Ninja

向您的设置中添加其他Teensies很简单,每个设备只需要一个USB端口,每个设备需要一个虚拟COM端口。

(注意。这种方法在所有ARM处理器和其他处理器上都可以很好地工作,我只是不知道有没有可用软件的廉价开发板)。

另一种方法是使用Arduino和Caterpillar Shield扩展I / O。在定制板上,我使用相同的I / O扩展器构建,能够以1KHz以上的频率更新256个输出。


4

我认为您想要的不是微控制器,而是诸如National Instruments PCI-6509 I / O卡之类的东西。您也可以得到USB版本,但是它们的I / O比PCI-6509少得多。National Instruments也将向您出售C ++驱动程序。

如果看起来太贵了,您可以尝试使用Labjack U3之类的东西。


我已经使用过labjack,如果您做任何更严重的事情(更高的采样率),它的确会降低计算机的速度,但是对于慢速采样率的简单逻辑来说,它非常有用。NI系统很棒,但是软件包对于家用来说太昂贵了。(至少要供我家庭使用。)
Wouter Simons,2010年

4

您描述的解决方案不存在较低的价格。问题是您要在非专用软件上运行控制软件。串行化64个端口并以高采样率通过USB推动它会极大地减慢主机速度。

有些解决方案适用于低性能的应用程序,例如提到的labjack。但是,您需要处理高IO速率的真正解决方案将涉及一个已编程的系统。问题是实现系统必须使用哪种编程。

LabView是非常昂贵的软件(效果很好,请不要误会我)。它使用图形语言设计软件,并编译为在FPGA或ARM系统上运行的代码。所有组件对于大容量嵌入式应用来说都太昂贵了,但是由于开发速度快,性能高,在测试环境中绝对很棒。

较便宜的解决方案是找到运行具有许多I / O的linux的系统。EmbeddedARM.com是一个提供许多类型产品的网站。您可以编写的代码可能在shell脚本,java,C等中。

Arduino的系统提供了可以用更简单的开发环境来开发微控制器。它们的开源性质意味着已经有很多项目可以学习。


3

我不知道有64个GPIO引脚,这很多,您可能必须自己构建。

我将其用于基准测试串行接口,但它也具有23个GPIO引脚。

如果您只是用谷歌搜索“ USB to GPIO”,那里有很多项目已经做到了,我在最初的几页中没有看到有64个GPIO,这是我发现的最接近的32个引脚。

构建一个不是很难,我可能只使用带有内置USB PHY的100pin pic18(取决于您的速度要求,可能需要更强大的CPU)

只要您的uC供应商提供USB驱动程序框架,您就不必进行过多的编码即可使其正常工作。

您极有可能需要为其构建PCB,因为足够大以具有64个GPIO引脚的芯片通常不会采用通孔封装。您也可以使用较小的微控制器,并为GPIO使用外部端口扩展器IC,但这将是一个更复杂的设计,并且编程也更加复杂。

您还可以查看将所有I / O引脚路由到接头并具有USB的开发板。这些可能会贵很多,因为它们可能会有很多不需要的东西。

最后一点,如果您找到一个带有RS232但有64个GPIO引脚的电路板,则可以使用RS232转USB适配器,我认为其中一些对我来说效果很好。但是,这确实限制了RS232接口的速度。


3

NI Labview环境价格昂贵,但可以满足您的需要(取决于您所获得的是通过USB,以太网还是PCI)。

Arduino Mega有54个引脚,价格为60美元,可让您靠近。但是,它并不是开箱即用的逻辑分析仪;您必须编写或找到草图才能执行此操作。我不知道可能有一个。在低巴士率下,这应该相当简单。Mega上的每条指令都在16MHz上发生,因此波特率会相当低,如果您能获得115200波特率信号,将会很幸运或非常聪明。

最后,如果您以9600波特或50MHz的频率采样,则这是一个截然不同的项目。请记住,USB运行在480 MHz(理论上;由于延迟和开销,您的实际数据速率会降​​低),因此如果不进行缓冲,您的性能将无法超过480/64 = 7.5MHz。借助缓冲和淫秽的金钱(比您的汽车还多),逻辑分析仪可以以千兆赫兹的数据速率为您提供68、102或136个通道。

我建议您非常认真地尝试找出是否可以使用可以提供8个左右通道的工具,并尝试分别进行分析。

编辑: 奥,我在想什么?如果您的速度如此之慢,那么通过串行链接工作绝对是正确的选择。我一直在使用研华的ADAM 4000模块系统;它们功能强大,易于使用(可通过COM端口与ASCII协议轻松接口,或使用随附的GUI软件),可扩展且受到良好支持。让自己得到4500(RS-232,使用计算机上的USB转换器或COM端口(如果仍然有))或4501(带有嵌入式Web服务器的以太网)控制器,链接成束的4053、4055和4056模块,而且你很好。


哦。但它们的价格非常昂贵。...例如16个频道的价格在100到150美元之间。
凯文·维米尔

我有一个Intronix 34端口逻辑分析仪来测试我的软件(即,将输入连接到微控制器控制引脚的输出)。我想大约是500美元,但这也不是真正的数字I / O吗?这并不是为了对自定义逻辑进行编程,而只是为了分析通道。我的可以以500Mhz的采样率工作,但是我通常并不需要该速度,除非我希望微控制器控制的外围设备支持最高200Mhz左右的速度(他们通常不这样做)。-总之,长话短说。我认为,逻辑分析仪并不是问这个问题的人所需要的。
Wouter Simons 2010年

绝对是我,但不是O。不,我同意逻辑分析器不是个人所需要的,因为有了新的信息。
凯文·维米尔

2

这个东西有70个GPIO和一个USB接口,价格为50美元。


您可以使用调用函数直接从运行在CPU上的C ++程序读取和写入引脚数据吗?
Faken

我要建议的是,恩智浦将使用一些基于I / O的ARM处理器,如果您不能获得足够的支持,则只能使用I2C IO扩展器。您无法击败该产品的价格,而且它即插即用。优秀作品。
akohlsmith

我不知道。我刚刚在Sparkfun的新产品发布中看到了它。
endolith'7

2

是的,UBW32看起来很适合您,并且默认固件使您可以从PC上的软件控制I / O引脚。

根据 “如何对FT232R上的SPI和并行接口进行位冲击”,您可以在PC上的软件控制的FT232R上显然可以位冲击8个数字引脚(可能还有更多?)。

FT232RL 15美元的分线板

听起来您真正想要的是数字I / O接口。您既不需要也不需要可编程的微控制器。如果您只需要16位,那么我将搭配几个FT232RL板。但是,看起来像一个价格为40美元的UBW32,它将为您提供所需的64个I / O,而其成本要比获得64个I / O所需的8个FT232RL板要低。

我发现这种情况变得越来越普遍-有时,将整个微控制器扔到一个问题上的花费甚至比使用硬接线解决方案要低,即使它拥有一百万我将永远不会使用的“额外”晶体管。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.