meiko 发表于 2016-1-21 17:22:12

基于Linux/Cortex-Arm A8 的构架咨询

本帖最后由 meiko 于 2016-1-21 17:23 编辑

比方说一台打印机,需要一个漂亮美观的人机界面,还有联网等。

Linux(也可以是winCE)+Arm9 或者A8 这种SOC,如果拿来做设备的主控制器,上面运行GUI,同时负责几个步进电机和无刷伺服电机,还有打印头的数据装填等工作。

我因为不了解linux,担心的问题是会不会出现“卡顿”,比方说GUI触摸屏的输入会不会造成电机运行的问题(或者反过来说,电机运行会造成人机互动的卡顿)?
一般情况下,这种实时性略有要求的系统该怎么搭建,是否要单独一块MCU来完成类似运动控制器的功能去控制电机驱动器之类?

万物互联 发表于 2016-1-21 17:28:50

操作系统就是用来干你说的这事的--任务隔离

node720 发表于 2016-1-21 17:47:40

我也不太懂哦。

meiko 发表于 2016-1-21 17:53:40

万物互联 发表于 2016-1-21 17:28
操作系统就是用来干你说的这事的--任务隔离

但任务的实时性如何保证呢? 比如LCD上正在播放一个关于按键之类动作的动画,同时电机,打印头在工作。

万物互联 发表于 2016-1-21 18:01:48

meiko 发表于 2016-1-21 17:53
但任务的实时性如何保证呢? 比如LCD上正在播放一个关于按键之类动作的动画,同时电机,打印头在工作。 ...

任务调度是内核自动完成的,你开发的应用作为内核的用户不必担心具体过程。但是有一个问题,就是linux目前还做不到硬实时(这也不是它的设计目标),只能做到每个任务尽快得到调度。

当然任务的优先级是可以通过nice值人为设置的,有实时任务和普通任务不同策略分别调度。

xjavr 发表于 2016-1-21 18:04:46

增加个STM32增加不了多少成本的,还简化设计。搞得太复杂能把你整死。

meiko 发表于 2016-1-21 18:22:12

xjavr 发表于 2016-1-21 18:04
增加个STM32增加不了多少成本的,还简化设计。搞得太复杂能把你整死。

其实不是成本的考虑,而是设计上是否合理,感觉像A8这种,性能应该是富余的,再加个M3......

xivisi 发表于 2016-1-21 18:32:43

Linux的中断相应需要数个毫秒,任务切换需要的时间更多。如果你的设计允许这样的响应延时则无问题

f1yh1347 发表于 2016-1-21 18:32:55

弄个实时系统

xivisi 发表于 2016-1-21 18:34:11

主频高的 延时小些一般400M以上应该就小于1ms 了

meiko 发表于 2016-1-21 18:56:00

f1yh1347 发表于 2016-1-21 18:32
弄个实时系统

实时系统容易做出漂亮的人机界面吗?比方说按下一个按键伴随着各种渲染光影动画...

hexenzhou 发表于 2016-1-21 19:09:03

方案有问题,控制机构要专门一个MCU来做,显示界面用Linux来搞是没问题的,可以搞得很酷。

wszyjsw2 发表于 2016-1-21 19:34:47

可不可以用双核心的 一个核心做控制,一个核心做界面?
不懂LINUX

wszyjsw2 发表于 2016-1-21 19:37:02

f1yh1347 发表于 2016-1-21 18:32
弄个实时系统

vxworks 和 UCOS 算不算实时系统?

孤独的猫 发表于 2016-1-21 20:02:50

3D打印机这样的已经有了

NJ8888 发表于 2016-1-21 20:31:48

AM335X一个A8和还有附加的实时控制单元相当于裸奔单片机

meiko 发表于 2016-1-21 21:17:54

NJ8888 发表于 2016-1-21 20:31
AM335X一个A8和还有附加的实时控制单元相当于裸奔单片机

这句话很费解{:3_57:}

meiko 发表于 2016-1-21 21:18:20

孤独的猫 发表于 2016-1-21 20:02
3D打印机这样的已经有了

给个关键字的提示?谢谢!

NJ8888 发表于 2016-1-21 21:19:34

meiko 发表于 2016-1-21 21:17
这句话很费解

那就说明你还没能力用它,干脆外包吧

f1yh1347 发表于 2016-1-21 21:45:31

NJ8888 发表于 2016-1-21 20:31
AM335X一个A8和还有附加的实时控制单元相当于裸奔单片机

你是指PRU-ICSS?
这个怎么使用都没有在官网找到

xjavr 发表于 2016-1-21 21:50:30

meiko 发表于 2016-1-21 18:22
其实不是成本的考虑,而是设计上是否合理,感觉像A8这种,性能应该是富余的,再加个M3...... ...

如果什么都自己实现,性能肯定是富余人。从开发效率来讲堆积木就比较快。

尽管Android有8个1.5G的CPU,也不够STM32做实时控制好。

meiko 发表于 2016-1-21 21:52:01

NJ8888 发表于 2016-1-21 21:19
那就说明你还没能力用它,干脆外包吧

我一直都是赶鸭子上架的方式做事的,外包了,那我吃什么?{:lol:}

iskywolf 发表于 2016-1-21 22:42:17

你打算多做多么炫酷的人机界面了? 还非得用linux? 弄个M4或M7的处理器, 跑实时操作系统+嵌入式的GUI就够了。

ALUMEI 发表于 2016-1-22 10:27:29

linux做界面,人机交互,网络等。控制电机用另外的mcu做。二者用串口或者其他的方式进行通信。

ALUMEI 发表于 2016-1-22 10:28:45

iskywolf 发表于 2016-1-21 22:42
你打算多做多么炫酷的人机界面了? 还非得用linux? 弄个M4或M7的处理器, 跑实时操作系统+嵌入式的GUI就够了 ...

打印机需要用到网络。m4 m7都不合适。linux在gui网络上很成熟,基于此,linux会比较合适。

changer15309 发表于 2016-1-22 10:34:05

通常这种系统是SOC+MCU架构,SOC处理ui和接口, MCU处理实时任务;参考汽车导航

sddp001 发表于 2016-1-22 10:54:08

增加个三块钱的单片机就能搞定实时控制,妥妥的,别废话

meiko 发表于 2016-1-22 11:22:44

iskywolf 发表于 2016-1-21 22:42
你打算多做多么炫酷的人机界面了? 还非得用linux? 弄个M4或M7的处理器, 跑实时操作系统+嵌入式的GUI就够了 ...

好的UI对一个产品的成功来说是决定性的,当然如果产品的技术牛逼到全世界独此一家,那UI就无所谓了,装几个机械旋钮和拨动开关都成。

iskywolf 发表于 2016-1-22 13:12:56

ALUMEI 发表于 2016-1-22 10:28
打印机需要用到网络。m4 m7都不合适。linux在gui网络上很成熟,基于此,linux会比较合适。 ...

开源的linux做不到实时,实时的linux貌似都要收费。原来我们用DM6446觉得ARM+DSP挺美好的,RBL/UBL/U-boot/kernel/文件系统/驱动/应用程序,一路搞下来一年半终于搞定,勉强做到5ms的图像采集(图像比较小)。同一个平台做另外一个应用做不到实时,加了片STM32F103。后来新的系统还是换了方案,DSP+STM32F407。总之要实时还是用实时操作系统或裸奔。以太网也不是大问题,大不了买别人移植好的。楼上有人说的AM335x可以了解一下,我没有用过,也不知道那个PRU好不好用。

iskywolf 发表于 2016-1-22 13:19:53

meiko 发表于 2016-1-22 11:22
好的UI对一个产品的成功来说是决定性的,当然如果产品的技术牛逼到全世界独此一家,那UI就无所谓了,装几 ...

刚给公司买的brother打印扫描传真复印一体机,支持网络打印,自动双面打印。人家也就两行字符的液晶。功能好用、稳定不出问题是第一重要的。

meiko 发表于 2016-1-28 21:42:26

我之前的理解都是错误的,A8这种通用应用处理器在IO处理上无法做到实时,这和其内部的L1,L2,L3,L4级管道有关,关于这个问题可参考TI的这个文档:http://www.ti.com/lit/wp/spry264/spry264.pdf

xivisi 发表于 2016-1-28 23:03:39

meiko 发表于 2016-1-28 21:42
我之前的理解都是错误的,A8这种通用应用处理器在IO处理上无法做到实时,这和其内部的L1,L2,L3,L4级管道 ...

TLB里面把cache配置为Deve型,或者strongly order 可以避免cache问题,

构架不是问题会用就行

bbstr 发表于 2016-1-29 08:15:35

用飞思卡尔的imx6是a9+cortexm4的

windrarara 发表于 2016-1-29 09:50:46

实时的功能交给PRU,一点问题也没有

XIVN1987 发表于 2016-1-29 10:11:31

windrarara 发表于 2016-1-29 09:50
实时的功能交给PRU,一点问题也没有


我简单搜了下,PRU不是用来实现各种串口(EtherCAT®、PROFIBUS、PROFINET、EtherNet/IP™)的吗??跟实时的功能有什么关系??

难道PRU是类似Cortex-M那样的单片机,可用C语言写在它上面运行的程序??
页: [1]
查看完整版本: 基于Linux/Cortex-Arm A8 的构架咨询