打印

为什么要从从芯片级应用开发转变到系统级应用开发

[复制链接]
16753|34
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
PSoC_Rock|  楼主 | 2008-11-14 16:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    自从INTEL公司于1971年生产第一颗MCU INTEL4004开始,就标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。这么多年来,嵌入式系统中的嵌入式芯片已经取得了长足的发展。生产嵌入式芯片的厂家也已有百家之多。然而,嵌入式芯片的应用开发方式基本上还是一直采用基于芯片级的应用开发方式。由于不同生产厂家生产的芯片其系统构架和指令系统不一样,嵌入式芯片应用的多样性和广泛性导致用户对芯片内部的资源和I/O数量要求不一样进而使得每一个厂家生产的嵌入式芯片都有许许多多的型号,这在一定程度上限制了嵌入式芯片应用开发方式的变化和发展。早期大都使用汇编语言进行开发,最近几年C语言已经广泛地被用到了嵌入式芯片的应用开发中。在编译器的支持下C是唯一可以直接操作硬件的高级语言。对于一个相对复杂的项目,虽然用C开发较汇编语言开发的效率提升了许多倍,但是由于现代嵌入式芯片的集成度和复杂度的大大提高,嵌入式系统的设计工程师需要花比以前更多的时间去熟悉芯片的系统构架和内部资源以及这些资源的控制方式才能对这些资源实施有效的控制。这不但增加了设计工程师的开发难度也使产品的开发周期更长。试想,一个由二、三十个寄存器控制其内部资源的MCU变成了一个二、三百甚至上千个寄存器控制其内部资源的SoC芯片时,设计工程师如何开发他的嵌入式应用系统呢?
来自 2楼
PSoC_Rock|  楼主 | 2008-11-14 16:06 | 只看该作者

为什么要从从芯片级应用开发转变到系统级应用开发

    这时,一个从芯片级应用开发方式到系统级应用开发方式的转变就变得非常重要。它只需要设计工程师知道芯片里有那些资源可以满足系统应用的需求,而不要求设计工程师过多的关注芯片的系统构架和内部资源的控制方式,甚至不需要设计工程师编写C和汇编的代码,仅仅根据应用系统的要求确定和建立输出和输入之间所对应的逻辑或函数关系。PSoC Designer 5.0为设计工程师应用PSoC芯片设计一个嵌入式系统提供了系统级应用开发的平台。允许设计工程师在这个平台上进行系统级应用开发或芯片级应用开发及二者的交叉开发。而它的可视化、无代码的系统级应用开发方式开创了嵌入式芯片开发的一个新时代...

使用特权

评论回复
板凳
a5566255| | 2008-11-21 17:10 | 只看该作者

LZ所描述的先进技术已经实现。。。。

那时的MCU就是现在PC机CPU。。。。说不定还是N核的。。。。。

使用特权

评论回复
地板
yewuyi| | 2008-11-24 13:46 | 只看该作者

忽悠,接着忽悠。。。

PSoC Designer 5.0根本就是个半残废的东西,呵呵,估计会夭折。。。

使用特权

评论回复
5
xzl| | 2008-11-27 14:40 | 只看该作者

呵呵,没有用过

到那时,谁都会设计电路,都会写程序了,我们岂不失业了?

使用特权

评论回复
6
PSoC_Rock|  楼主 | 2008-12-1 14:59 | 只看该作者

设计工程师如何开发他的嵌入式应用系统?

试想,一个由二、三十个寄存器控制其内部资源的MCU变成了一个二、三百甚至上千个寄存器控制其内部资源的SoC芯片时,设计工程师如何开发他的嵌入式应用系统呢?

事实上,典型的PSoC芯片已经有2~3百个寄存器了,如果没有用户模块有多少人愿意学PSoC? 难道让所有的人都回到钻燧取火的原始社会这可能吗?

使用特权

评论回复
7
yewuyi| | 2008-12-2 14:50 | 只看该作者

俺不觉得2~3百个寄存器有多麻烦。。。

因为事实上,虽然有几百个寄存器,但这几百个寄存器又分成了N类,你用某个模块的时候,对应这个模块的寄存器一般最多也就10多个而已,配置一下这几个寄存器是很简单的事情。

这和什么回到原始社会自然也不能等同。

如果没有用户模块,我会更愿意使用PSOC,至少总比可能死的不明不白的强。。。

PSOC让标准的外设变成了可配置,但这种可配置有多大的意义值的怀疑,PSOC最近推出的型号把AD和TIMER集成到内部是一个正确的选择,一些基本模块如果都需要去配置的话,只能说是让用户增加了工作量,我没看出来这样有什么好处。

个人建议要把可配置的重点放在IO重定位、OP、UART、SPI、IIC等上面,而TIMER、AD直接集成就好了。

使用特权

评论回复
8
glhong| | 2008-12-5 16:03 | 只看该作者

系统级应用开发应该是个趋势

就象写程序有人喜欢用汇编,有人喜欢用C,可以说各有优缺点。本人是汇编、C都用过,总觉得写汇编是享受,写C是工作。不过不管怎么样,用汇编的人还是越来越少了。也许人越来越贵吧,人的工作效率才是更重要的。从芯片级开发转到系统级应用开发其实也是这个理。再说现在的系统越来越大了,什么都从头做,不是不可能,只是市场不等人呀。

当然系统成本还是能省就省。就说AD吧,虽说很常用,但也不是每个应用都会用到AD。直接集成也是一个办法,但给工程师一个发挥自己想象空间的机会也不错。



使用特权

评论回复
9
yewuyi| | 2008-12-8 17:22 | 只看该作者

超级错误

系统大不代表一棵芯片完成的工作量也很庞大,系统大主要是很多子系统集成后带来的,而不是一个单系统就很庞大,嘿嘿,如果一个人把一个大系统用一棵芯片去完成,我们暂且不说是否可以实现,至少说,这是很愚蠢的行为,因为不管是从时间、难度、可靠性、甚至成本等指标上来看,这都是不合适的。


如果,什么都给他灵活性的话,那么FPGA应该应用的更广才对,但现在看,这并不是这样的,反而做成了固定式的很多MCU大行其道,PSOC想走特殊的道路,但MCU+可配置并不应该意味着什么东西都要配置,如果连最基本的1+1的东西都要配置,那干脆大家都去做晶体管好了。。。

俺个人更看好PSOC新推的集成了一些基本模块的芯片并认为CY应该做更多工作推广这几个型号才是出路。

使用特权

评论回复
10
爱在北极| | 2009-2-10 11:01 | 只看该作者

没用过

市场在具有说服力

使用特权

评论回复
11
PSoC_Rock|  楼主 | 2009-2-10 13:19 | 只看该作者

芯片级应用开发

    芯片级应用开发是指设计工程师在开发应用系统时需要直接操作或干预芯片的内部资源。这种操作或干预芯片的内部资源通常是通过应用程序直接访问或读写寄存器来实现的。现在的嵌入式芯片的应用开发方式基本上还都是基于这种开发方式。ARM虽然可以在RTOS上进行开发,但应用程序仍然需要直接操作内部资源。
    芯片厂家提供给设计工程师的开发平台(或集成开放环境IDE)一般分成两块:应用编辑界面和调试界面。应用编辑界面用于用户编辑应用程序并具有编译和连接生成系统文件和16进制代码的功能。调试界面用于在仿真器上调试或JTAG方式调试。图一是基于芯片级应用开发的一般的流程,图一A是一般嵌入式芯片应用开发流程,图一B是PSoC芯片应用开发流程。蓝色的块表明那是在开发平台上进行的工作。由于PSoC芯片内的许多资源是以数字模块和模拟模块的方式提供给用户[1],PSoC Designer5.0以前的IDE已经用这些数字模块和模拟模块实现了很多的周边功能称之为用户模块,这些用户模块不仅包括数字模块或模拟模块的配置,而且包括操作这些模块的一些API函数。这样用户在编写应用程序之前只要在器件编辑界面下先选择用户模块并且设置全局和模块参数。在应用程序中就可以直接调用模块的API来操作模块资源,减少了应用程序的工作量。但仍然还是有许多的硬件资源控制还是需要应用程序来干预的,如全局资源参数的更新,I/O口和中断的控制,用户自己定义的功能块等等。所以它也是属于芯片级的应用开发。在芯片级应用开发的流程中,如果用户用一个新型号的芯片,那么熟悉芯片的的性能和内部资源以及怎样操作这些资源将会占用整个开发周期的很多时间,对新手尤其是这样。

使用特权

评论回复
12
PSoC_Rock|  楼主 | 2009-2-10 13:21 | 只看该作者

系统级应用开发

    系统级应用开发是指设计工程师在开发应用系统时不需要直接操作或干预芯片的内部资源,只要针对系统应用实现输出与输入的对应关系。这种对应关系可以是逻辑的或函数的关系或二者的任意的组合。它有点象在Windows操作系统上用VB或VC开发应用程序,不需要关心底层的代码是如何操作硬件来实现它的功能,只是在应用的层面上实现应用项目所需要的功能。PSoC Designer 5.0完全基于PSoC Express 3.0实现了系统级应用开发的集成应用开发环境,在开发项目时可以把PSoC芯片当作一个黑盒,在系统应用的层面上进行开发。开发完成,马上可以将系统生成的代码下载到芯片里进行测试,实现了从抽象概念直接到芯片的开发方式。

使用特权

评论回复
13
PSoC_Rock|  楼主 | 2009-3-18 17:43 | 只看该作者

系统级应用开发项目的层次结构

使用特权

评论回复
14
PSoC_Rock|  楼主 | 2009-3-18 17:51 | 只看该作者

系统级应用开发项目的层次结构

为了进一步说明系统级应用开发的概念,我们可以看一看系统级应用开发项目的层次结构。类似于网络通信中协议的定义被划分为七层,PSoC Designer 5.0将一个应用项目也划分为五个层次(如图二)。最底层是硬件即PSoC芯片,依次向上是用户模块、通道、驱动器和应用层。我们把用户模块层和硬件层归结为底层,芯片级应用开发就在这个层面进行。把通道层以上归结为高层,系统级应用开发就是在应用层上进行的。系统级应用开发所使用的元素或单元就是位于第四层的各种各样的驱动器。驱动器只有通过第三层的通道才能调用第二层的用户模块的API函数。PSoC Designer 5.0所产生的应用项目的系统文件包括除硬件层以外的所有四层。即每一层都有每一层的应用文件。一般的讲,上层只和邻近的下层发生作用,如函数的调用,而不跨层作用。这种分层的结构可以把一个复杂的应用系统的开发简单化。可以真正做到独立于硬件的应用软件的设计[2]。设计工程师开发项目所要做的主要设计工作就是在应用层上用传输函数建立输出和输入之间所对应的逻辑或函数关系。

使用特权

评论回复
15
Cypress-lh| | 2009-8-8 18:12 | 只看该作者
学习了

使用特权

评论回复
16
Cypress2009| | 2009-8-22 13:48 | 只看该作者
好东西,学习了

使用特权

评论回复
17
lanyong| | 2009-9-16 11:58 | 只看该作者
刚才打他们原厂上海的电话.居然连个愿意技术支持的人都没.推我们去找代理商.

没什么意思的.

非主流的东西.

想把所有的功能都弄在一个片子里面,结果什么功能都实现不了.

使用特权

评论回复
18
lanyong| | 2009-9-16 12:00 | 只看该作者
个人认为学这个风险太大.找不到其它家和它类似的东西,哈哈.以后拿货就难受了。


另,去弄cpld,或者fpga是正选.

使用特权

评论回复
19
beny5566| | 2009-9-18 21:10 | 只看该作者
FPGA在数字电路领域的前景确实很好
而且比较成熟,很多可用的IP核
PSoc毕竟比较年轻,其实它把数模结合的思路还是很新颖的
只是路还很长

使用特权

评论回复
20
god_like| | 2009-10-29 16:08 | 只看该作者
好贴,LZ写的很详细,不过要成为系统工程师还有很长的路

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

467

帖子

1

粉丝