<?xml version="1.0" encoding="gb2312"?>

<rss version="2.0">
    <channel>
    <title>享受孤独</title>
    <link>http://luoye314.blog.tianya.cn/</link>
    <description>扬一场远远的风送我少年的梦如穹苍一帆
    </description>

    <item>
      <title><![CDATA[我的职业生涯路]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[挑山工              ]]></category> <pubDate>2009-7-3星期五(Friday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=17960235&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/>　　毕业刚好一年。<BR>　　回头望，记忆已经被隔离成片段状。<BR>　　开发逆变电源的日子，更多的是对于职业发展方向的探索，也很是全神贯注的工作，对于自身能力的提高效果不是很明显，也算是职业探索的成本吧。<BR>　　刚好TS16949体系换证审核，成为了从技术到管理的转型切入点，做研发的时候，工作起来也不能说是不疯狂和投入，但做管理工作的时候，却又多了一份激情，心是跳动的。<BR>　　公司的体系并没有成型，甚至是连轮廓都没有，简单举例，没有规范的人事制度和行政制度，没有一个人知道到底公司有多少员工，他们又是什么岗位，公司的管理体系能够好到哪儿去。这个公司具备了一切创业初期小企业的特点。<BR>　　TS体系审核完全是走过场，因为实际的质量体系并不存在，一切是为了审核而存在的。在经过审核之后，我开始策划了TS管理体系的改善计划。现在回头看，TS体系改善计划看上去很完美，实际上却是想种一颗大树，后来却发现没有土壤。而随即将工作的重点转向了土壤的建设。理清行政制度，人事制度，组织架构和岗位分工。工作是靠人来做的，所以人事建设是一切工作改善的基础。<BR>　　接下来是绩效管理和工资制度的建设，目的是把所有人员调动起来，推行目标导向，绩效管理。执行力不足是以往公司改善失败的主要原因，很多改善的结局都是无疾而终。]]></description>
	  <comments>2009-7-6 18:33:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=17960235&amp;idWriter=0&amp;Key=0" target="_blank">(4)</a></comments>
    </item>

    <item>
      <title><![CDATA[创业者之路]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[挑山工              ]]></category> <pubDate>2009-3-26星期四(Thursday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=16882258&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/>森子创业者之路（持续更新） <BR>首先感谢典典同学的提醒，将字体改大一些吧。虽然写的都是一些很随意的东西，没有考虑过太多，无提关心者的感受。<BR>很随意的浏览新闻，很少关注八卦的我信手点了一个《大龄文艺女青年之歌》。一下子把自己拉回到那褪掉些许青涩的校园生活，而那象牙塔里特有的blog味道，又让自己近乎麻木的心跟着活跃起来。<BR>梦想？！我们每个人都在说为了理想而努力，而挣扎，你聪明的，你能告诉我你的理想到底是什么？<BR>而我们确实是在努力，用心的生活着。<BR>就在上个月，笛子扔了，初一就开始的噪音终于停止了；口琴扔了，忧郁的复读生活不会再有，漫漫的思念之夜不再重来；犹豫了几番，洞箫还是拎了回来，那那首《枉凝眉》仍然还没有顺过气来，却已失去了那个心境；那把从来都没有学会的吉他，同样还是扛过来了，心有不甘又如何，那一刻，我已经承认它们必须成为装饰品，成为一个永远来不及实现的梦。<BR>篮球的感觉，必须承认找不回来了，虽然同样的激情四射的在场上驰骋，但心灵却在告诉自己，它离自己越来越远了，场上的我，如此陌生，就像对朋友说的那样，一个人的孤独，一群人的孤独。<BR>梦想就是得不到的吧。<BR>因为得不到的总是最好的。<BR>而这些如果是生活的点缀，那到底什么是理想呢；每天把自己的神经绷的紧紧的，也同样把所有的手下的神经绷的紧紧的，是否真的是在为了一个共同的梦想而努力，又或许，网络上的那个大骂上司太苛刻的陌生人，就是自己的手下呢。<BR>而，<BR>理想的样子究竟是……？？？<BR>也自我培训，理想应该量化，但，理想不是美丽的么？而美丽的东西不都是感性的么？美丽是绝对的么？好像98年的大学生辩论赛的话题之一吧，那句话印在脑海挥之不去，花儿美丽，但狗照样啃它！<BR>那就不把理想量化，那所谓的找好了目标再为之努力，为了一个方向，去完善自己，又是否是在扯淡，是否把自己扭曲的刚好放在社会的影子里，我们便成熟了，得到世俗的仰望，便是成功了。<BR>都说忍辱负重，有一天却发现仍然为了理想而卑躬屈膝，华发丛生，那是否是生命的悲哀，或是努力过，问心无愧了，阿Q的说一声，人生的美丽在于过程。<BR>想不清楚，那就走别人的路，让自己说去吧。<BR>因为，<BR>因为，<BR>成功的标准便是得到社会的认可。<BR>很不幸<BR>我想成功！<BR>不知所谓！！！<BR>森子于泽德花园15栋903<BR>20090326<BR><BR>自己应该在开始的时候多做一些基层的东西，而现在想再去补这些功课，已经错过了最佳的时机，当策划做到一半的时候，当感觉缺乏第一手的经验的时候，不可能放下手里的事，去生产线蹲点。 <BR>而理论的学习，更应该是在有了足够的实践之后要做的事，没有感触，空泛的理论学习是没有多大用处的，应该坚持操作和理论的学习同时进行，而经过两年后，便应该进行系统的理论学习了。MBA是一个挺不错的选择，我会认真考虑的。 <BR>大的目标固然让我感到兴奋，但这样的目标往往需要长期的坚持、反复的煎熬，而不像一个小小的项目那样，经过一段轰轰烈烈的奋斗，成功了或者是失败了。无论是成功的喜悦还是失败的挫折，都是那样的强烈，冲击思维，激发斗志。经常的时候，不经意间就陷入了小的项目中，时间和工作转化为成果，这种诱惑经常是很难抵制的。又有的时候，那些不必要的琐事，会占用大量的时间，而多余的批示和越级插手过问这些能够满足内心权利欲望的事，同样会侵蚀自己最最昂贵的资产——时间，这个时候，好羡慕中层的管理者了。 <BR>负责整个公司内部的运营，继续的保持激情，和持续的让所有的下属保持激情，其实是一件很辛苦的事，因为所有的眼睛都会望着你。而时刻的没事找事去规范管理和改善现场，又是很费心思的差事。没有人逼迫你去做什么，没有人给你下达任务发送命令的时候，制定目标编写计划的过程始终要跟懒惰作斗争。 <BR>不多说了，睡觉。 <BR>——森 <BR>20090313 <BR><BR>终极目标的困惑 <BR>是白手起家，还是通过现有的平台来实现。 <BR>严格意义上，还从来没有真正踏入社会一步，一切都是听来的看来的。 <BR>有人说，从一开始就应该树立终极目标，然后去围绕它来展开各个阶段目标，这样做起事来才有目的性。又有人说，终极目标一旦确立，就不应该轻易改变。好像听起来有些矛盾，确定目标的基本成熟条件是什么？ <BR>随着学生时代接近尾声，前方的路也渐渐有了轮廓。但终极目标的困惑，仍然没有解除，随之而来的是阶段性的困惑。 <BR>是完全靠自己下判断，而是根据环境来下判断？ <BR>是把自己的事业交给命运么？ <BR>但不管怎么样，有一点是清晰的了。 <BR>继续补充管理类知识和理论，为踏出第一步做好充分的准备。 <BR>——森 <BR>20080408<BR>]]></description>
	  <comments>2009-3-26 23:36:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=16882258&amp;idWriter=0&amp;Key=0" target="_blank">(0)</a></comments>
    </item>

    <item>
      <title><![CDATA[好久不来了]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[爱晚亭              ]]></category> <pubDate>2009-3-14星期六(Saturday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=16754597&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/>要不是hd提醒我<BR>我都忘记它的存在了<BR>连密码都试了好几次才输对<BR>惭愧啊<BR>以后还是来这里灌溉一下吧]]></description>
	  <comments>2009-3-14 10:25:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=16754597&amp;idWriter=0&amp;Key=0" target="_blank">(0)</a></comments>
    </item>

    <item>
      <title><![CDATA[一日三省]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[爱晚亭              ]]></category> <pubDate>2007-8-14星期二(Tuesday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10657213&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/>贤者狎而近之，畏而爱之。爱而知其恶，憎而知其善。聚而能散，安安而能迁。临财毋苟得，临难毋苟免。很毋求胜，分毋求多。疑而毋质，直而勿有。]]></description>
	  <comments>2007-8-14 21:37:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10657213&amp;idWriter=0&amp;Key=0" target="_blank">(0)</a></comments>
    </item>

    <item>
      <title><![CDATA[dsp2407 知识（转）]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[DSP                 ]]></category> <pubDate>2007-8-12星期日(Sunday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10627076&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/><BR>1.电源部分   使用了AC-DC5V的变压器,在引入板子的入口处加了一个自恢复熔丝fuse以防止电路出现短路等故障,对引入的5V又加了一个10uH的电感以隔离高频部分,然后对5V还有220u和0.1u的电容滤波以期得到干净的+5V电源. 为了得到适合2407A的+3.3V供电要求,使用了TI推荐的TPS7333QD,输出+3.3V/500mA,而且还有一路200ms延时的RESET信号可以复位DSP. 由于电路中还有AD,DA部分,所以还需要用到模拟电压和模拟地部分,为了隔离,在系统使用了电感(10uH)或者磁珠进行隔离,如果电路要求不高的话也可以使用0 ohm电阻进行隔离.<BR>2.IO口的驱动能力,由于DSP的IO口没有单片机的IO口驱动能力强,例如在控制指示发光管的时候可以加一个三极管(如8050)来增大驱动能力再驱动发光管.（我用Ｉ／Ｏ直接可以驱动一个插件的ＬＥＤ，，没有问题）<BR><BR>3.由于电路中有3.3V与5V的IC,所以在进行接口的时候要注意电平转换问题,推荐的转换芯片是74LVC245,74LVC16245等,既实现电平转换又实现了缓冲.<BR><BR>4.由于2407A的内部AD只有10位分辨率,所以使用了AD1674外扩了ADC,为了给AD1674供电,需要+/-12V的电压,所以在电路中采用了DC-DC模块NR5D12/100,方便了电路设计.在模拟开关CD4051部分还是需要+/-电源的.<BR><BR>5.常用的运放 LM324,LM358,CA3140(高输入阻抗10^12),OP07.具体使用可查阅资料<BR><BR>6.建议 对DSP2407A的输入引脚最好能经过74LVC245的缓冲.SCI,SPI,CAN 部分引脚起码要进行缓冲电平转换再接入DSP,有条件的话还可以用光偶(快速点的6N137,慢点的有TLP521,4N25).<BR><BR>7.时钟部分可以选择无源的晶体或有源的振荡器.10M即可,可以利用内部的PLL电路来倍频,这样可以减少板子上的噪声.<BR><BR>8.2407A的几个关键引脚需要特殊处理.例如,PLLVCCA需要加干净的3.3V,BOOT_EN/XF可以加一个10K的上拉电阻,PLLF与PLLF2需要根据时钟来选择外接的电阻电容,VCCP需要有个插针,BIO可以加一个10K的上拉，CLOCKOUT可以扩展出来以供测试用,MP/MC需要一个插针,READY/ ENA_144 /VIS_OE 需要加上拉4.7K,PDPINTA/PDPINTB/XINT1/XINT2也可以加上拉10K.<BR><BR>9.另外在电源部分还可以接一个整流桥,目的是防止电源极性接反,整流桥在直流中可以作为极性校正电路来使用.<BR> <BR>]]></description>
	  <comments>2007-8-12 11:14:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10627076&amp;idWriter=0&amp;Key=0" target="_blank">(0)</a></comments>
    </item>

    <item>
      <title><![CDATA[2812和2407的比较(转)]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[DSP                 ]]></category> <pubDate>2007-8-12星期日(Sunday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10627002&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/>2407和2812是dsp2000系列性能最让人关注的两款芯片，在使用过两种芯片后，特将两款芯片的异同来作一比较。<BR> <BR><BR> 都是对于电机控制开发使用。由此，在外设上的配备上有较多的相似之处。<BR><BR>  相同点： <BR><BR> 1 时间管理器，来管理定时器和pwm，及电机光电码盘的接口，<BR><BR> 2 多路ad来接受传感器的信号<BR><BR> 3  通讯接口 spi can sci 使得可以方便的通讯<BR><BR> 4 程序存储器和内部ram都有一定的容量满足不同的需求<BR><BR> 5 3。3V电压供电，突出了低功耗的节电功能<BR><BR> 6 可以进行程序和数据空间的外扩<BR><BR> 7 jtag接口相同<BR><BR> 8 内核相同 ，方便程序移植<BR><BR>不同：<BR><BR> 1 电压 2407 3。3V内核和IO供电，flash烧写电压5V<BR><BR>    2812  1。8V或者1.9V内核和3。3VIO供电，flash烧写电压3.3V<BR><BR>   上电次序，2407没有关系 ，2812 io先上电，核后上电 <BR><BR>2 clk  2407最大40M   <BR><BR>           2812 最大150M（内核电压1.9V）或者 135M（内核电压     1.8V）<BR><BR> 3 下载程序方式 2407 编程器下载<BR><BR>           2812  编程器下载 串口 spi <BR><BR> 4 cpu 2407为16位处理器 <BR><BR>     2812为32处理器<BR><BR> 5 程序和数据空间 2407 flash32k ram2。5K可扩展196K<BR><BR>      2812 flash 16×128K   ram 16×18K可扩展4M空间<BR><BR> 6 时间管理器 2407 定时器16位 一个光电码盘接口<BR><BR>     2812 定期器32位 有两个光电码盘接口<BR><BR> 7 ad  2407 10位  2812 12位 <BR><BR> 8 sci 2407 1个 没有缓冲单元 2812 两个 具有缓冲单元<BR><BR> 8 can 2407标准can符合2。0B协议 2812增强can和标准can 符合2。0B<BR><BR> 9 mcbsp 2407 没有  2812 有<BR><BR> 10 语言 2407 汇编 c    2812 汇编 c c＋＋<BR><BR>  11 TI支持  2407没有提供较多的例程支持 2812 提供完整的模块例程支持<BR><BR>  12 编程风格 2407倾向于模块编程 2812 类编程，并且结构性更强<BR><BR>  13 寄存器的保护。2407没有对系统寄存器的保护，2812提供了保护机制<BR><BR>  14 在开发环境的帮助文件上看，2407比2812要好点，<BR><BR>       2812的寄存器的设置和定 义帮助文件基本没有说明<BR><BR>  对dsp及其开发环境及支持的一点建议：<BR><BR>  1 dsp没有象arm一样把用于外扩的数据地址线和IO功能复用，这对io管脚使用较多的人来讲不方便，还要进行扩展，如果不需要外扩的话，这些线就浪费了<BR><BR>  2 对于现在3。3V和5V共存的时期，如果管脚能和5V兼容，那是最好不过了<BR><BR>  3 不明白为什么把管脚的电源和地总是放在相邻的位置上，焊不好很容易短路<BR><BR>  4 用程序下载器，下载程序速度很慢，耽误时间<BR><BR>  5 开发环境如果能实现软件仿真那就好了，不用非要硬件板了，调试起来那就方便多了<BR><BR>  6 作为芯片开发商，最了解自己的芯片的功能，如果能够免费为大家提供各种芯片，尤其是处理器的外设例程，无论对于大家对芯片的上手速度和开发进度来讲都是好事，而且对于芯片的推销也是很好的事情。]]></description>
	  <comments>2007-8-12 11:06:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10627002&amp;idWriter=0&amp;Key=0" target="_blank">(0)</a></comments>
    </item>

    <item>
      <title><![CDATA[我要把用勺子吃饭申请专利]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[爱晚亭              ]]></category> <pubDate>2007-8-10星期五(Friday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10611172&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/>我要把用勺子吃饭申请专利<BR>谁拿勺子吃饭谁给我专利使用费<BR>哈哈哈哈]]></description>
	  <comments>2007-8-10 21:12:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10611172&amp;idWriter=0&amp;Key=0" target="_blank">(0)</a></comments>
    </item>

    <item>
      <title><![CDATA[回来了]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[爱晚亭              ]]></category> <pubDate>2007-8-9星期四(Thursday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10598841&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/>回来了<BR>……<BR>修身,齐家,治国,平天下<BR>修身为首<BR>修身<BR>立志为先<BR><BR>]]></description>
	  <comments>2007-8-9 20:22:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10598841&amp;idWriter=0&amp;Key=0" target="_blank">(0)</a></comments>
    </item>

    <item>
      <title><![CDATA[《与青春有关的日子》]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[爱晚亭              ]]></category> <pubDate>2007-8-6星期一(Monday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10559932&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/>“我们浪费掉了太多的青春，那是一段如此自以为是、又如此狼狈不堪的青春岁月，有欢笑，也有泪水；有朝气，也有颓废；有甜蜜，也有荒唐；有自信，也有迷茫。我们敏感，我们偏执，我们顽固到底地故作坚强；我们轻易的伤害别人，也轻易的被别人所伤，我们追逐于颓废的快乐，陶醉于寂寞的美丽；我们坚信自己与众不同，坚信世界会因我而改变；我们觉醒其实我们已经不再年轻，我们前途或许也不再是无限的，其实它又何曾是无限的？曾经在某一瞬间，我们都以为自己长大了。但是有一天，我们终于发现，长大的含义除了欲望，还有勇气、责任、坚强以及某种必须的牺牲。在生活面前我们还都是孩子，其实我们从未长大，还不懂爱和被爱”<BR>转自半杯纯净水]]></description>
	  <comments>2007-8-6 16:44:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10559932&amp;idWriter=0&amp;Key=0" target="_blank">(0)</a></comments>
    </item>

    <item>
      <title><![CDATA[上拉电阻,下拉电阻]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[电子学习            ]]></category> <pubDate>2007-7-31星期二(Tuesday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10497662&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/>上下拉电阻   主要是为了提高芯片引脚的驱动能力或者是为了防止临界电平会引起错误的操作!例如,有的芯片引脚驱动能力较差,不能将电平拉高,就必须接上拉电阻;对于中断引脚也必须接上拉(对于低电平有效)或下拉(对于高电平有效)防止误中断 <BR>   <BR>   1、当TTL电路驱动COMS电路时，如果TTL电路输出的高电平低于COMS电路的最低高电平（一般为3.5V），这时就需要在TTL的输出端接上拉电阻，以提高输出高电平的值。   <BR>   2、OC门电路必须加上拉电阻，以提高输出的搞电平值。   <BR>   3、为加大输出引脚的驱动能力，有的单片机管脚上也常使用上拉电阻。   <BR>   4、在COMS芯片上，为了防止静电造成损坏，不用的管脚不能悬空，一般接上拉电阻产生降低输入阻抗，提供泄荷通路。   <BR>   5、芯片的管脚加上拉电阻来提高输出电平，从而提高芯片输入信号的噪声容限增强抗干扰能力。   <BR>   6、提高总线的抗电磁干扰能力。管脚悬空就比较容易接受外界的电磁干扰。   <BR>   7、长线传输中电阻不匹配容易引起反射波干扰，加上下拉电阻是电阻匹配，有效的抑制反射波干扰。   <BR>    <BR>   上拉电阻阻值的选择原则包括:   <BR>   1、从节约功耗及芯片的灌电流能力考虑应当足够大；电阻大，电流小。   <BR>   2、从确保足够的驱动电流考虑应当足够小；电阻小，电流大。   <BR>   3、对于高速电路，过大的上拉电阻可能边沿变平缓。综合考虑   <BR>   以上三点,通常在1k到10k之间选取。对下拉电阻也有类似道理  <BR>   一般的，上拉电阻是一端接正的电压，下拉电阻是接参考地  <BR>]]></description>
	  <comments>2007-7-31 20:55:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10497662&amp;idWriter=0&amp;Key=0" target="_blank">(0)</a></comments>
    </item>

    <item>
      <title><![CDATA[DSP学习笔记（4）—I/O口流水灯实验]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[DSP                 ]]></category> <pubDate>2007-7-30星期一(Monday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10483922&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/>程序是抄的书上的，根据学51的经验，开始做实验的时候，最好是手动去抄别人已经编制好的实验程序，不能太贪心了，硬件软件都想完全靠自己来做，到时候一大堆的错误，让你编译都没的编译，到最后还是不知道怎么是对如何是错。况且，根据现在的入门阶段，也是不现实的。<BR>整个实验下来，还是能学到不少东西的，至少可以对I/O硬件有了更形象的认识，并且通过抄程序的过程，可以反过来去消化寄存器对I/O口的控制以及其他一些硬件知识。当然，程序中仍然有很多东西还没有消化，不过熟能生巧对吧。这里我们只谈跟I/O有关的吧。<BR>TMS320LF2407系列有多达41个通用、双向的数字I/O（GPIO）引脚，其中大多数都是基本功能和一般I/O复用引脚，TMS320LF2407系列的大多数I/O引脚都可以用来实现其他的功能。数字I/O端口模块采用了一种灵活方法，以控制专用I/O和复用I/O引脚功能，所有I/O和复用引脚的功能可通过9个16位控制寄存器来设置，这些寄存器分为两类：<BR>I/O口复用控制寄存器（MCRx）：用来控制选择I/O口作为基本功能还是一般I/O引脚功能。<BR>数据和方向控制寄存器（PxDATDIR）：当I/O引脚用作一般I/O引脚功能时，用数据和方向控制寄存器可控制数据和I/O引脚的数据方向，这些寄存器是直接和I/O引脚相连。（注：这一点是跟51不同的，对于51来说，I/O口作为输入输出时候是双向的，不用规定数据方向）。<BR>L2407的I/O的设置就这么简单，除了这一设置之外，就基本可以跟51一样用了。做流水灯实验还有一点要注意的是，寄存器PxDATDIR的高8位是IOPx端口数据流动方向设置，设置完成后一般不再改变，低8位是数据内容，程序中是需要来改变其内容来实现循环显示效果的。所以程序中需要引入新的变量进行逻辑操作。<BR>在建立工程和编译过程中，遇到的最大的障碍是关于头文件“LF2407regs.h”,虽然回头看起来挺弱智的。因为是对它不了解的缘故，它应该就跟51编程里面的reg52.h头文件一样，只不过51里面写了头文件Keil自己就可以在库里找到，CCS软件里面没有，需要自己去添加一个（至少我的软件里是没有），这个头文件我也是完全搬的别人的，好象对于我们这样的初级学者来说，不怎么需要去自己动手编辑它。建立好放在工程所在目录就可以了（或者干脆放在C:\ti\c2400\cgtools\include里面）。<BR>编程里面需要注意的是C语言程序里面调用汇编命令时，如  asm(" setc SXM"); setc前面是需要加空格的。还有，再重复提一下矢量跳转表文件（vectors.asm）开头的 .title .sect  .ref前面都是需要加空格的。<BR>最后，我的流水灯显示程序编译通过后，load到目标板2407里面以后运行，直接拿示波器测的输出I/O口的波形，看来工具齐全了还是可以节省不少时间和精力的。]]></description>
	  <comments>2007-7-30 17:39:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10483922&amp;idWriter=0&amp;Key=0" target="_blank">(0)</a></comments>
    </item>

    <item>
      <title><![CDATA[2407A与PC机232通讯的解决方案(转)]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[DSP                 ]]></category> <pubDate>2007-7-30星期一(Monday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10478790&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/>TMS320LF 2407A是24X系列中功能和资源最丰富的DSP芯片，以它为例，介绍DSP与PC机的RS232通讯。<BR>　　硬件部分即DSP通过232电平转换芯片如（MAX232、MAX3232(3.3V供电)）与PC机的串口相连，不过要注意DSP上的TXD、RXD与PC机上TXD、RXD对应关系。<BR>　　SCI初始化程序：<BR>void SCI_INIT()<BR>{<BR>*MCRA=0x0003;<BR>*SCICCR=0x07;                //1个停止位，不使能奇偶校验，空闲线多处理<BR>        　　　　　　　　　　　　//器模式，8位字符<BR>*SCICTL1=0x03;              //#0013H 使能接收和发送，SLEEP=0 禁止休眠<BR>        　　　　　　　　　　　　//方式， 禁止接收错误中断，TXWAKE=0 即没<BR>        　　　　　　　　　　　　//有选定的发送特征<BR>*SCICTL2=0x2;               //使能接收中断<BR>*SCIHBAUD=0x01;　　　　　　　　//波特率=9600B/S，CLK＝30M<BR>*SCILBAUD=0x86;             //CLK不同，数值也不同<BR>*SCICTL1=0x23;              　//使SCI脱离复位状态<BR>*SCIPRI=0x40;                //SCI接收中断为high优先级中断    <BR>}<BR>   DSP串口发送子程序:<BR>void   UartSent()            //发送服务程序<BR>{<BR>const  char*  var="How are you!";//定义一段需要发送的字符串<BR>static  int  i=0;<BR>unsigned int Flag_sent=0;<BR>for(i=0;i3) j=0;<BR>*IFR=0x0001;　　　　//清除中断标志<BR>enable();<BR>}<BR>//中断服务程序<BR>void interrupt Uart_rec_isr()     //中断服务程序<BR>{<BR>switch(*PIVR){<BR>  case 0x06:<BR>  UartRec();<BR>  break;<BR>  default:<BR>  enable();<BR>  break;<BR>}                  <BR>}]]></description>
	  <comments>2007-7-30 10:21:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10478790&amp;idWriter=0&amp;Key=0" target="_blank">(0)</a></comments>
    </item>

    <item>
      <title><![CDATA[C2000系CMD文件的配置理解(转)]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[DSP                 ]]></category> <pubDate>2007-7-29星期日(Sunday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10473341&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/>CMD的专业名称叫链接器配置文件，是存放链接器的配置信息的，我们简称为命令文件，其中比较关键的就是MEMORY和SECTIONS两个伪指令的使用，常常令人困惑，系统出现的问题也经常与它们的不当使用有关。CCS是DSP软件对DOS系统继承的开发环境，CCS的命令文件经过DOS命令文件长时间的引申发展，已经变得非常简洁（不知道TI文档有没有详细CMD配置说明）。我学CMD是从DOS里的东西开始的，所以也从DOS环境下的CMD说起： <BR><BR>1命令文件的组成 <BR>命令文件的开头部分是要链接的各个子目标文件的名字，这样链接器就可以根据子目标文件名，将相应的目标文件链接成一个文件；接下来就是链接器的操作指令，这些指令用来配置链接器，接下来就是MEMORY和SECTIONS两个伪指令的相关语句，必须大写。MEMORY，用来配置目标存储器，SECTIONS用来指定段的存放位置。结合下面的典型DOS环境的命令文件link.cmd来做一下说明： <BR>file.obj            //子目标文件名1 <BR>file2.obj        //子目标文件名2 <BR>file3.obj        //子目标文件名3 <BR>- o prog.out  //连接器操作指令,用来指定输出文件 <BR>- m prog.m    //用来指定MAP文件 <BR>MEMORY <BR>{ 略 } <BR>SECTIONS <BR>{ 略 } <BR>otherlink.cmd <BR>本命令文件link.cmd要调用的otherlink.cmd等其他命令文件，则文件的名字要放到本命令文件最后一行，因为放开头的话,链接器是不会从被调用的其他命令文件中返回到本命令文件。 <BR><BR>2 MEMORY伪指令 <BR>MEMORY用来建立目标存储器的模型，SECTIONS指令就可以根据这个模型来安排各个段的位置，MEMORY指令可以定义目标系统的各种类型的存储器及容量。MEMORY的语法如下： <BR>MEMORY <BR>{ <BR>PAGE 0 : name1[(attr)] : origin = constant,length = constant <BR>         name1n[(attr)] : origin = constant,length = constant <BR>PAGE 1 : name2[(attr)] : origin = constant,length = constant <BR>         name2n[(attr)] : origin = constant,length = constant <BR>PAGE n : namen[(attr)] : origin = constant,length = constant <BR>         namenn[(attr)] : origin = constant,length = constant <BR>} <BR>PAGE关键词对独立的存储空间进行标记，页号n的最大值为255，实际应用中一般分为两页,PAGE0程序存储器和PAGE1数据存储器。 <BR>name存储区间的名字，不超过8个字符，不同的PAGE上可以出现相同的名字（最好不用，免的搞混），一个PAGE内不许有相同的name。 <BR>attr的属性标识，为R表示可读；W可写X表示区间可以装入可执行代码；I表示存储器可以进行初始话，什么属性代码也不写，表示存储区间具有上述的四种属性，基本上我们都选择这种写法。 <BR>origin:略。 <BR>length:略。 <BR>下面是经常用的2407的简单写法大家参考,程序从0x060开始，要避开加密位，不从0x0044开始更可靠一点，此例中的同名的页可以只写第一个，其后省略，但写上至少安全一点： <BR>MEMORY <BR>{ <BR>PAGE 0: VECS: origin = 0x0000,  length 0x40 <BR>PAGE 0: PROG: origin = 0x0060,  length 0x6000 <BR>PAGE 1: B0  : origin = 0x200,  length 0x100 <BR>PAGE 1: B1  : origin = 0x300,  length 0x100 <BR>PAGE 1: DATA: origin = 0x0860,  length 0x0780 <BR>} <BR><BR>3 SECTIONS伪指令 <BR>SECTIONS指令的语法如下： <BR>SECTIONS <BR>{ <BR>.text:  {所有.text输入段名}  load＝加载地址  run =运行地址 <BR>.data:  {所有.data输入段名}  load＝加载地址  run =运行地址 <BR>.bss:  {所有.bss输入段名}    load＝加载地址  run =运行地址 <BR>.other: {所有.other输入段名}  load＝加载地址  run =运行地址 <BR>} <BR>SECTIONS必须用大写字母，其后的大括号里是输出段的说明性语句，每一个输出段的说明都是从段名开始，段名之后是如何对输入段进行组织和给段分配存储器的参数说明： <BR>以.text段的属性语句为例，“{所有.text输入段名}”这段内容用来说明连接器输出段的.text段由哪些子目标文件的段组成，举例如下 <BR>SECTIONS <BR>{ <BR>.text:{  file1.obj(.text) file2(.text) file3(.text,cinit)}略 <BR>} <BR>指明输出段.text要链接file1.obj的.text和 file2的.text 还有file3的.text和.cinit。在CCS的SECTIONS里通常只写一个中间没有内容的“{ }”就表示所有的目标文件的相应段 <BR>接下来说明“load＝加载地址  run =运行地址”链接器为每个输出段都在目标存储器里分配两个地址：一个是加载地址，一个是运行地址。通常情况下两个地址是相同的，可以认为输出段只有一个地址，这时就可以不加“run =运行地址”这条语句了；但有时需要将两个地址分开，比如将程序加载到FLASH，然后放到RAM中高速运行，这就用到了运行地址和加载地址的分别配置了，如下例所示： <BR>.const :{略} load = PROG  run = 0x0800 <BR>常量加载在程序存储区，配置为在RAM里调用。 <BR>“load＝加载地址”的几种写法需要说明一下，首先“load”关键字可以省略，“＝”可以写成“>”, “加载地址”可以是：地址值、存储区间的名字、PAGE关键词等，所以大家见到“.text:{ } > 0x0080”这样的语句可千万不要奇怪。“run =运行地址”中的“ = ”可以用“>”，其它的简化写法就没有了。大家不要乱用。 <BR><BR>4 CCS中的案例 <BR>在CCS中的命令文件好像简化了不少，少了很多东西，语句也精简了好多，首先不用指定输入链接器的目标文件，CCS会自动默认处理，其次链接器的配置命令也和DOS的环境不同，需要了解的请找TI文档吧！下面是刘和平书中的例子，大家来看看是不是可以很精确的理解了呢！ <BR>-stack 40 <BR>/*-------------------------------------------------------------------------*/ <BR>/*  命令文件 – 存储空间 F2407            */ <BR>/*-------------------------------------------------------------------------*/ <BR>MEMORY <BR>{ <BR>PAGE 0 :  VECS : origin =    0h , length = 40h  /*  程序复位 */ <BR>      PVECS : origin =  40h , length = 70h  /* 外围模块中断向量 */ <BR>      PROG : origin =  0b0h , length = 7F50h  /* 在片FLASH */ <BR>PAGE 1 :  MMRS : origin =    0h , length =  05Fh  /* MMRS            */ <BR>    B2 : origin = 0060h , length =  020h  /* DARAM B2 块  */ <BR>    B0 : origin = 0200h , length =  100h  /* DARAM B0 块  */ <BR>    B1 : origin = 0300h , length =  100h  /* DARAM B1 块  */ <BR>SARAM  : origin = 0800h , length =  0800h    /* SARAM 块  */ <BR>EXT : origin = 8000h , length =  8000h  /* 外部存储器  */ <BR>} <BR>/*-------------------------------------------------------------------------*/ <BR>/* SECTIONS ALLOCATION                                                    */ <BR>/*-------------------------------------------------------------------------*/ <BR>SECTIONS <BR>{ <BR>    .reset  : { } > VECS  PAGE 0  /* 复位中断向量表 */ <BR>    .vectors : { } > VECS  PAGE 0 /* 中断向量表 */ <BR>    .pvecs  : { } > PVECS  PAGE 0 /* 外围模块中断向量表  */ <BR>    .text    : { } > PROG  PAGE 0 /* 代码 */ <BR>    .cinit  : { } > PROG  PAGE 0   <BR>    .bss    : { } > SARAM  PAGE 1 /* 块 B2 */ <BR>    .const  : { } > SARAM  PAGE 1 /* 块 B2 */   <BR>    .stack  : { } > B1    PAGE 1 /* 堆栈—40个单元 */ <BR>}<BR>]]></description>
	  <comments>2007-7-29 19:38:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10473341&amp;idWriter=0&amp;Key=0" target="_blank">(0)</a></comments>
    </item>

    <item>
      <title><![CDATA[DSP学习笔记（3）—"hello,DSP world"工程实例]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[爱晚亭              ]]></category> <pubDate>2007-7-28星期六(Saturday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10459857&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/>"hello,DSP world"工程实例<BR>本人所用版本CCS2.2<BR>一个完整的工程，至少需要四个文件构成：<BR>1、以.cmd结尾的命令文件，用来分配存储空间。<BR>2、C语言系统库rts2xx.lib。系统库包括了编译器所提供的所有功能：初始化C语言环境（入口地址为—_c_int0）,设置堆栈，标准C的函数库等，工程中还可以添加其他的库文件（.lib）。<BR>3、有且必须有一个含有main（）函数的C语言源程序文件（.c）。系统库初始化完毕后，将控制权交给main（）函数。<BR>4、矢量跳转文件，通常为汇编文件（.asm）形式。此文件需要准确的定位在函数起始地址，其内容是汇编文件中的无条件跳转语句“B”。<BR>程序执行的常规流程为：矢量表的第一条指令可设置为“B _c_int0”,从而在上电复位后，把控制权交给系统库，系统库初始化完毕后，把控制权交给main（）函数。<BR>注意：<BR>1、不用添加头文件（.h），编译时，根据设定的路径，头文件会自动扫描进工程。<BR>"hello,DSP world"整个工程流程：<BR>  建立前必须保证CCS setup已经设置成功，并完成驱动设置，连接并打开了仿真器和目标板。（我是这样做的）<BR>  1）打开CCS2.2，单击Project-New，对话框中输入工程名“hello”，初学建议工程文件保存在CC安装目录下的myprojects目录中。<BR>  2）单击File-New-Source File,建立三个文本编辑窗口，分别编写cvextors.asm  roam.cam和hello.c三个文件。<BR>  3）单击Projext-Add Files to Projects,添加三个文件到工程中。<BR>  4）添加库文件rts2xx.lib(位于目录C:\ti\c2400\cgtools\lib),  这四个文件构成了工程文件hello.pjt。<BR>  5）单击Project-Build Options,选择Linker，在Output Filename[-o]中设置生成的二进制文件名字hello.out，确定。（里面还有一个compiler签页，内有Assembly，可以设置include路径，我调试时，仍按照内为空白）<BR>  6）单击Project-Build，会在工程文件DEBUG子目录下生成hello.out文件。<BR>  7）单击file-load program，将hello.out文件下载到LF2407目标板，下载程序前，LF2407必须设置成MP方式，将引脚mp//mc拉高。<BR>  8）单击debug-run或者F5，程序在DSP中运行，窗口Stdout中显示“hello， DSP world”。<BR>恭喜成功！！<BR>附带程序代码：<BR>/****************************************************/<BR>/*cvextors.asm*/<BR>  .ref _c_int0    ;.ref前需要加一个空格<BR>  .sect "vectors" ;.sect前需要加一个空格<BR>rset: B _c_int0<BR>int1: B int1<BR>int2: B int2<BR>int3: B int3<BR>int4: B int4<BR>int5: B int5<BR>int6: B int6<BR>/****************************************************/<BR><BR>/****************************************************/<BR>/*raod.cmd*/<BR> -stack 512<BR> -m hello.map<BR><BR>MEMORY<BR>{<BR>PAGE 0:<BR>      VECS     :origin=0x0000,length=0x0040<BR>      flash    : origin=0x1044,length=0x6f00 <BR>      SARAM_P  : origin=0x8000,length=0x0800<BR>      <BR>PAGE 1:<BR>      B0B1     : origin=0x0200,length=0x0200<BR>      <BR>      B2       : origin=0x0060,length=0x0020<BR>      <BR>      SARAM_D  : origin=0x0800,length=0x0800<BR>      <BR>      RAM      : origin=0xa000,length=0x7ff0<BR>}<BR><BR>SECTIONS<BR>{<BR>   vectors  : load=VECS PAGE 0<BR> .text    : load=flash PAGE 0<BR> .cinit   : load=flash PAGE 0<BR> .switch  : load=flash PAGE 0   <BR> .const   : load=RAM PAGE 1   <BR> .bss     : load=RAM PAGE 1   <BR> .stack   : load=B0B1 PAGE 1  <BR>/****************************************************/<BR><BR>/****************************************************/<BR>/*hello.c*/<BR>#define WDCR (*((volatile unsigned int*)0x7029))<BR>#define WDKEY (*((volatile unsigned int*)0x7025))<BR><BR>#include<stdio.h><BR><BR>void main(void)<BR>{<BR>WDCR=0x0068;<BR>WDKEY=0x0055;<BR>WDKEY=0x00aa;<BR>printf("hello,DSP world\n");<BR>for(;;);<BR>}<BR>/****************************************************/]]></description>
	  <comments>2008-12-11 8:25:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10459857&amp;idWriter=0&amp;Key=0" target="_blank">(4)</a></comments>
    </item>

    <item>
      <title><![CDATA[DSP学习笔记（2）]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[爱晚亭              ]]></category> <pubDate>2007-7-27星期五(Friday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10455162&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/>今天摆弄CCS一天，试图编译一个简单的程序，然后LOAD到目标板中，至少这样可以能有点看的到的东西给点信心啊。<BR>呵呵，可惜，一个整天，也没有把经典的“HELLO”程序编译通过，到现在还不知道问题出在哪儿，但是有个预感，这个问题一定是非常幼稚的，本来嘛，对于一个小孩子，连爬都是很高深的技术呢。我想是include的扫描转载问题，不可能include里面什么都没有呀。明天一定把程序编译通过！<BR>不过还好，晚上时候把闻亭的TEST程序load到目标板上去了，这已经让我很欣慰了，至少证明我的软件和硬件连接已经成功了。尽管TEST程序只检测到第4步，但效果跟目标测试效果一样哦。<BR>争取明天能够把简单程序编译成功，然后加载到目标板上实现！]]></description>
	  <comments>2007-7-27 21:53:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10455162&amp;idWriter=0&amp;Key=0" target="_blank">(0)</a></comments>
    </item>

    <item>
      <title><![CDATA[DSP学习笔记（1）]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[DSP                 ]]></category> <pubDate>2007-7-25星期三(Wednesday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10432571&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/>学习DSP好几天了，今天开始写心得吧，虽然还没有入门。一只脚都没有。<BR>网上看了不少关于学习DSP的帖子，然后又扫着几本书，过了好一阵子，才搞懂DSP的系列，确定自己选择学习的型号TMS320LF240X。惭愧！可是到现在还没搞懂DSP到底是什么呢。<BR>很幸运，兴趣是最好的老师，很不幸，我只有这么一个老师。当初自学51的时候，进展比蜗牛还慢，不知道现在学习DSP，会是怎么样的历程，当然，51直到现在也只是学了点皮毛而已。<BR>一口气买了几本书，关于硬件基础知识《TMS320LF240 DSP结构、原理及应用》，关于程序编写《TMS320LF240 DSP C语言开发应用》、《DSP C2000程序员高手进阶》，关于开发软件《TI DSP集成化开发环境‘CCS’使用手册》。再加上图书馆借的书，看的脑袋疼！<BR>书非借不能读也，物亦然，借到了一个仿真器和2407EVM板，恨不得一下把它吞下去，摆弄了两天，只不过是把CCS2.2和仿真驱动装上罢了，离真正开始工作不知道还有多长时间呢。<BR>    lena的ARM进展也跟我差不多。<BR>    继续努力！会有那一天<BR>]]></description>
	  <comments>2007-7-25 22:16:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10432571&amp;idWriter=0&amp;Key=0" target="_blank">(0)</a></comments>
    </item>

    <item>
      <title><![CDATA[我的学习经验――如何掌握DSP(转)]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[DSP                 ]]></category> <pubDate>2007-7-23星期一(Monday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10400364&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/>1． 接触DSP <BR>在参加过一次社会上多的尽乎到了泛滥地步的"DSPxxx"培训班之后,我"自信"已经具备DSP工程师资格,便欣喜若狂跑道书店买了一本名为"DSP xxx应用"的书，作者叫xxx，并且是这个领域的牛人，这本书确实是很出色的书籍。但是当时，对于我这个对DSP一窍不通、刚刚入门的人来说却建立了一个错误的概念——DSP是个很容易的领域，只要培训一下,再稍微看看书，就可以成为专家。所以，现在看来，这些都是误导,我认为学习DSP技术应该分为两个阶段，第一阶段学习DSP技术基础概念；第二阶段学习DSP技术的行业应用。那本"DSP xxx应用"的书，它更适合书名应叫做“DSP中的数学或物理运用”...什么的。 <BR><BR>2． 购买DSP学习套件 <BR><BR>有了兴趣，就要去学习，于是我撺掇领导批准购买了DSP学习入门套件（DSK），许多公司均有销售，如TI等，大概是需要3000－4000人民币。买后不久，我就发现，这种套件对于我来说一点用处都没有。因为我的基础知识实在是太差了。这些套件对于我来说，只是另一种涵义的PC机及一些外围设备，想要懂的这些东西，我就需要去读更多的相关书籍，这时，很难没有想要放弃的念头，我开始有点畏惧DSP这种技术，门槛太高了。可是，我不能放弃，我已经投入了许多的金钱和时间，我不想丢掉这4000元钱，也不能对领导没有交待。事实上，我没有想到，我将付出更多的钱和时间去学习。 <BR><BR>3． 再次参加培训班，再次购买DSP书籍 <BR><BR>在我就感到了无助，困惑之际。我又想到了放弃。虽然我的数学还算不错，但其中遇到的一些问题在我思考后，还是无法解决，我越来越畏惧DSP了。于是,我开始在“google"上搜索DSP培训相关的信息，终于发现闻亭公司“DSP培训中心”的教程和内容正是我一直寻找的东西。也许是DSP技术对我的有着巨大的诱惑力，也许是我的之直着，我又一次勇敢的报名参加了培训。32个课时之后，解决了我半年多来积累的很多粗浅的问题。再翻开培训教材刚刚复读了第一章时，我想如果这本教材是我读到的第一本书，并且我没有花4000元买那个可*的学习套件，我会毫不犹豫的投降，放弃学习DSP，但……。那个可*的xxx作者，他的书怎么可以用作教学呀。他的书虽然让我对DSP产生了浓厚的兴趣，却把我引到了一条艰难的路上，而且花了那么多的冤枉钱...。既然事已如此，我只有慢慢的去读这些书籍，在我读到教材的后面章节以后，我开始明白前面章节的内容，所以当你读书遇到不明白的时候，千万不要气馁。有时，一个内容，可能需要读上几遍，才能明白，这比一开始的感觉要好的多了。 <BR><BR>4． 实验——至关重要的一步 <BR><BR>现在，从你的架子上取下那套DSK，去尝试做一些小实验，我的第一个实验是“正弦发生器”，这个实验比较简单，但是它也花费了我几周的时间去读大量的关于串口、编码、寄存器等的书并且进行大量的实验。这个执行半小时的“正弦发生器”，让我查阅了恨不得够组建一个图书馆的书籍，而且这个东西没有任何用途。我是用汇编语言在54x中执行，这个实验让我很好的理解了什么是DSP，什么是McBSP, DMA, 等。当然问题也同步产生了，我就又不得不做了许多的实验去验证。我建议，在系统未定型之前，使用mathlab/simulink进行仿真，并且可以多实验几种芯片，这样可以让你明白更多的内容。我觉得我就要成为一个真正的DSP工程师了，我度过了最困难的时期。我觉得自己是个英雄，嘿嘿。 <BR><BR>5． 去寻找一份与DSP相关的工作，去当个DSP工程师 <BR><BR>我希望困难已经过去，但这种愿望为时过早了。在DSP的研究中，我还遇到了很多的困难，由于篇幅有限，我就不在进行描述了。反正，如果想成为真正的DSP专家，就不要期望事情会变得容易。有些DSP开发人员并不知道什么是真正的0和1，他们只会查阅各种参考书籍和参数表,我们并不提倡这种做法。因为这些人选择了一种简单的做法,但是他们并不是真正的DSP开发人员.他们只是编写一些他们不理解的代码，他们似乎在担当着一台“编码器”的角色. <BR><BR>6． 总结 <BR><BR>这篇文章只是我的一点感慨，可能并不是很适用现在的DSP开发工程师，因为，市面上已经有了供你学习的DSP教学套件，搭配了多种实验供你参考，轻松入门，如：闻亭公司的“大学实验箱”什么的。这个实验箱提供了一个很好的实验环境，并且为初学的你设计了多种实验、教材，让你由浅入深的学习。不会向我似的，绕一大圈才走到正确的路上。另外，你也可以向他们的工程师咨询。 <BR><BR>祝所有DSP的研究者早日成功<BR>]]></description>
	  <comments>2007-7-23 10:55:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10400364&amp;idWriter=0&amp;Key=0" target="_blank">(0)</a></comments>
    </item>

    <item>
      <title><![CDATA[DSP学习进阶]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[DSP                 ]]></category> <pubDate>2007-7-23星期一(Monday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10400294&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/>学习TI的各种DSP，本着循序渐进的原则，可以分为多个层次。根据我多年开发DSP的经验，在这里总结一下各个层次的进阶： <BR><BR>1、DSP2000（除了2812）： <BR>进阶：标准C -> C和汇编混合编程 <BR>说明：把DSP2000当作单片机来玩就可以了，非常简单。 <BR><BR>2、DSP5000（包括DSP2812） <BR>主要：标准C -> C和汇编混合编程 -> DSP/BIOS -> RF3 <BR>说明：DSP5000是个中等产品，性能不高不低，基本上也没有开发难度。 <BR><BR>3、DSP6000 <BR>主要：标准C -> C和汇编混合编程 -> DSP/BIOS -> XDAIS -> RF5 <BR>说明：DSP6000的开发难度明显增大，不论是硬件还是软件。还分为两种档次： <BR><BR>（1）DSP62XX & DSP67XX：开发这两类DSP，硬件上会初步遇到信号完整性问题，软件方面来说，DSP/BIOS是必需的，复杂的程序还需要XDAIS和RF3、RF5的知识。 <BR><BR>（2） DSP64XX：开发难度比较大，硬件方面需要重点考虑系统合理架构问题，信号完整性问题；软件方面，需要综合运用各种比较先进、专业的知识，例如用 DSP/BIOS作为RTOS，用RF5作为程序架构，尽量采用MiniDriver来编写底层驱动程序等。如果深入编程，还会遇到令人困惑的Cache 冲突问题（虽然TI最近专门针对这个难题升级了CCS），等等。 <BR><BR>另外还有一些辅助知识，根据自己需要可以选学： <BR>1、GEL：推荐所有阶段的开发者都要学； <BR>2、RTDX：一般来说没有必要学习； <BR>3、CCS中的C++面向对象编程技术：不建议采用； <BR>4、CSL：对于DSP6000以上的开发，必须的； <BR>5、各种DSP库函数：对于复杂算法程序，建议学习。 ]]></description>
	  <comments>2007-7-23 10:50:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10400294&amp;idWriter=0&amp;Key=0" target="_blank">(0)</a></comments>
    </item>

    <item>
      <title><![CDATA[开发TI DSP需要的书籍，以及经验[zt]--初学者值得一看]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[DSP                 ]]></category> <pubDate>2007-7-23星期一(Monday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10400249&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/>TI的DSP，相对于ADI等公司的DSP，开发资料比较丰富。现在市面上很多的，大都是入门级书籍，并且良莠不齐。单是我自己购买的DSP书籍，就有20种左右。 <BR>在此列出我真正买到、读过、并且受益良多的TI DSP书籍，希望对DSP的入门者有所帮助。<BR><BR>1、入门书籍：<BR>  （1）DSP2000系列：<BR>       书名：  《TMS320LF240x DSP C语言开发应用》<BR>       作者：  刘和平等<BR>       出版社：北京航空航天大学出版社<BR>       书号：  ISBN 7-81077-250-3<BR>       价格：  36.00元<BR>  （2）DSP5000系列：<BR>       在我的应用领域，DSP5000是个鸡肋，性能不高不低，我用的很少。<BR>       所以对DSP5000的书籍不列出，以免误导他人。<BR>  （3）DSP6000系列：<BR>       书名：  《TMS320C6000系列DSP原理与应用》（第2版）<BR>       作者：  李方慧等<BR>       出版社：电子工业出版社<BR>       书号：  ISBN 7-5053-8153-9/TN.1696<BR>       价格：  45.00元<BR>  （4）讲述集成开发软件CCS的书籍：<BR>       书名：  《DSP集成开发环境-CCS及DSP/BIOS的原理与应用》<BR>       作者：  彭启琮等<BR>       出版社：电子工业出版社<BR>       书号：  ISBN 7-121-00064-4<BR>       价格：  39.00元<BR><BR>2、专业级书籍：<BR>  应该说是“专业级资料”，因为到了DSP开发的专业级阶段，是买不到中文资料的，也买不到书籍。只能从TI的网站上下载相关的pdf文档，全英文的。<BR>  这些英文资料数量惊人。想达到熟练开发DSP6000软、硬件的水平，你需要<BR>阅读的英文资料，如果打印出来的话，摞在一起足足有一人高。<BR>  不要羡慕DSP高手一般月薪10K以上，他们也都是吃苦学来的知识和经验。<BR><BR>3、题外话：<BR>  商业化的产品，与实验室里的成果，往往相差很远。不要以为自己在实验室里搞出来了一些所谓“惊人的成果”，就以为自己是人才。一般来说这些所谓的成果根本经受不住市场的考验。<BR>  在学校里学足了知识和经验以后，还需要几年的时间去企业中锻炼。当自己设计的产品，因为质量问题多次被客户骂得狗血淋头，才知道怎样设计“产品”，而不是“试验品”。<BR><BR>]]></description>
	  <comments>2007-7-23 10:46:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10400249&amp;idWriter=0&amp;Key=0" target="_blank">(0)</a></comments>
    </item>

    <item>
      <title><![CDATA[几个DSP高手的经验介绍(转)]]></title>
	  <author>luoye314</author>
	  <category><![CDATA[DSP                 ]]></category> <pubDate>2007-7-23星期一(Monday)晴</pubDate> 
      <link>http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10399798&amp;idWriter=0&amp;Key=0</link>
      <description><![CDATA[<br/>一. 我是已经从事DSP开发有几年了，看到许多朋友对DSP的开发非常感兴取，我结合这 <BR>几年对DSP的开发写一写自己的感受，一家之言，欢迎指教。我上研究生的第一天起根据 <BR>老板的安排就开始接触DSP，那时DSP开发在国内高校刚刚开始，一台DSP开发器接近一万 <BR>还是ISA总线的，我从206开始240、2407A都作过产品，对5402、2812、5471在产品方案 <BR>规划制定和论证时也研究过。由于方向所限对6X、8X系列没有接触。  <BR><BR>我发现在国内无论在公司或高校许多地方为了加快开发周期往往把一个产品开发分为硬 <BR>件和软件两个相对独立部分，由不同的人完成。这在具有一定技术和管理基础的公司， <BR>由总设计师统一规划协调，分任务并行完成的情况下是可行的，也是符合现代产品开发 <BR>规律的。但是在高校人员的流动很大，研究生的有效科研时间很短、基础差（许多研究 <BR>生起步时对电熔、电阻、三极管的分类和选型都很困难，我也是这样过来的）更不用说 <BR>系统规划设计了，况且许多老板自己也不太懂，师兄有自己的任务，他们搞明白时也毕 <BR>业了。在许多高校做DSP就是找一个算法加到自己的主程序里，在板子上跑一下，基本达 <BR>到效果就可以了，至于可靠性是次要的，产业化无从谈起，这已经算不错的了。 <BR><BR>其实我觉得一个系统的完成，系统的规划是最重要的，在规划时对硬件设计的知识和认 <BR>识是决定性的，它可以让你知道什么是可行的，什么是不可行的，当你同时具有软件设 <BR>计能力时，就可以合理的分配系统功能，完成使用VHDL进行系统行为描述－—系统功能 <BR>划分—— 系统子结构设计这样的自顶向下的设计规划流程，成为系统设计专家、项目经 <BR>理，否则只是硬件工程师、软件工程师。无论作51、196、还是DSP都是这样。 <BR><BR>下面分别谈谈我对硬件和软件设计的感受 <BR><BR>硬件设计是系统设计的关键，国内和国外产品的差距往往是硬件设计水平高低决定的， <BR>任何软件设计思想没有可靠的物理载体都是空中楼阁，纸上谈兵。学校的研究生很多都 <BR>想避开硬件设计，对于一个全新的设计与其说不屑不如说不敢。试想一下烧几个片子的 <BR>压力要比跑飞几段程序的压力大的多，尤其是功率器件，一旦烧掉，弄不好火光冲天， <BR>人的自信都没了。况且改一次板周期长，经费高，还不知行不行。其实在国外实力一般 <BR>的公司也是尽量避免硬件的更新设计，产品一旦定型往往通过软件升级，这是公司的发 <BR>展策略，对个人而言物以希为贵，培养一个硬件设计师往往要比软件设计师时间长花费 <BR>多。在设计dsp硬件时，开始设计最小系统板，系统按功能分板设计调试，注意分板电路 <BR>的稳定性可能不如整板电路，要多加入抗干扰环节，分板间的引线包括电源线地线要短 <BR>，尽量在10公分以内，实在不行加入光耦隔离、采用隔离电源。切记电源线、地线的干 <BR>扰远比信号干扰对系统的危害大得多，又常常被人忽视。电路板工作正常的先决条件就 <BR>是电源正常！当分板电路正常后再更居情况设计整板电路。在调试时发现的问题一定要 <BR>找到原因解决，即使是飞线，割线，不要寄希望于下一板改了再看，除非原理性错误。 <BR>每一个功能环节多准备几套方案。DSP的选型要根据系统功能而定，2000是一个功能比较 <BR>全的控制器，但运算性能相对低，但目前大部分控制类、家电类包括中低层次的工业总 <BR>线通信产品足够了，281X不错但太贵，而且开发技术不成熟。54XX更像一个协处理器， <BR>其实高端产品5471就很好，功能完*，但BGA封装对产品的开发有一定难度。如果没有从 <BR>事过嵌入式系统开发的朋友其实可以从51看起，许多思想是共通的，51很经典没有哪一 <BR>款微处理器像51那样使用持久和普遍。在硬件设计时更多的精力放在外围电路设计上， <BR>外围电路设计的灵活性要比DSP本身高得多，难度大得多。建议多考虑CPLD。 <BR><BR>软件设计上，着眼点不要仅局限于某种算法和控制策略，而是软件系统框架的制定，即 <BR>操作系统的选择和实现，算法和控制策略只是其中技巧性很强的子程序和子程序间参数 <BR>相互关系，建议设计软件时能具有操作系统、数据结构和编译原理方面的知识，特别是 <BR>使用C。对DSP的内部硬件结构一定要掌握，特别是中断结构和流程、流水线操作，不然 <BR>飞都不知道怎么飞的。在语言选择上我当时是这么给自己规定的先编20个左右的汇编程 <BR>序，每个代码量超过4K，使用语句范围覆盖全部语句的60％－70％，在此基础上使用C。 <BR>现在发现用C构建程序的主体框架（操作系统）比较快而其不容易出错，（我现在正在用 <BR>ASM根据UCOSII的思想重写自己的操作系统）但对系统实时性影响比较大的运算算法一般 <BR>采用MATLAB——C——ASM的办法仿真调试优化，这里的优化不单单是利用优化器优化， <BR>而是根据数据的特点改变运算方法，以除法为例C里的／号其实掩盖了许多技巧，当除数 <BR>为常数时就可以放大倒数移位相乘移位的办法进行，精度高速度快。这些办法只有掌握 <BR>了ASM语言并用ASM语言思考才会熟练应用。另外我想告诉一些作算法特别是控制算法的 <BR>朋友，千万不要随意评判一个算法的优劣，在程序中程序和代码优化的程度往往影响了 <BR>控制效果好坏，而不是算法本身的思想。其实在实际中往往PID甚至PI、PD就够了，神经 <BR>元、模糊、小波适用于研究和写论文，模糊在实际中用的多一点，主要是小日本用的比 <BR>较成熟，我再恨日本人，这点也服气，小日本就是滑，许多物理现象搞不透，就用这法 <BR>，还管用，题外话。 <BR><BR>最后我想说的是，当我们面对市场要求时，产品往往考虑的是可靠性、性能、价格而不 <BR>是你用的什么芯片，在满足性能的基础上结构越简单就越可靠，芯片越通用价格就越低 <BR>，能用51就不用196，能用2407就不用2812，除非把芯片本身作买点利用高成本赢取高利 <BR>润。无论2000还是5000、6000系列都有市场前景，关键是要做深做透 <BR><BR>获取知识的方法、处理项目的能力是相通的，具体的说就是不要把目光盯在做硬件还是 <BR>做软件上，用ASM还是C，要勤动手打好基础，提高自己对系统总体设计的能力，从系统 <BR>的眼光看问题。为什么都是做DSP的有的毕业拿3000，有的5000、8000，除了运气和关系 <BR>外，重要的是你对事物的认识深度和高度。我一直都记住这句话：有前途的人做什么都 <BR>有前途，没前途的人做什么都没前途。  <BR><BR><BR>二. 与其说是钻在里面，毕业设计是搞240，在老师的压力做出了一点东西，这期间主要 <BR>是对DSP的各种基础知识的熟悉与理解，对DSP的真正深入是在公司工作以后。当初进公 <BR>司，因为正有一个项目需要用5410要我接手。说实话，在学校期间我5000的书都没有看 <BR>过一眼，可没办法，只能靠自己了。不过好的是我2000DSP的基础很好。接过项目后，我 <BR>第一个星期就全部看的是5000的指令，DSP的结构倒没怎么看，因为项目硬件已成型，主 <BR>要是算法。这样，花了一个星期熟悉指令与项目相关的程序，第二个星期也就开始编程 <BR>了。半个月以后我对5410也就用很熟了的，当然主要还是讲在算法方面。这个项目太概 <BR>做了四个月吧，系统程序是我编写的，主要有如64位加减乘除乘方开方、及时域方面的 <BR>一些算法。现在又做一个控制系统，用2407开发的，硬件主要有直交变频，并把2407的 <BR>所有外设资源全部用到了。现在我可以这样自夸一句吧：TI的2000系列与5000系列的我 <BR>都熟悉，要我去以此做个系统，没问题。上面是把我搞DSP的经历简单说了一下的吧，在 <BR>这里我想对正在学及想学DSP的难兄们说一句的是，DSP并不是很难。当然，这个前提是 <BR>你的基础要好，我单片机，接口都还行，当初就是从单片机改成DSP的。有了单片机的基 <BR>础再去学2000第列的DSP（下面的DSP单指2000系列，另有说明为止），你就可以把DSP看 <BR>成一个super microcontroller了。相比之下，DSP除了比单片机多了更丰的外设接口（ <BR>SPI,SCI、CAN、PWM、CAP、QEP等等），他就是一块单片机，只不过在单片机来说你要另 <BR>加芯片的工作，DSP全部把它做在一块芯片去了，我现在看DSP也真就这么简单。前面有 <BR>人提到DSP主要是做算法，这句话有一定的片面性： TI有很多系列的DSP，现在主流的D <BR>SP主要为2000系列、3000系列、4000系列、5000系列、6000系列。除了2000与5000系列 <BR>是定点DSP外，其余的均为浮点系列。 TI的2000系列主要长处是在用于控制系统，因为 <BR>它的资源非常丰富，前面提到，在控制系统中用到的一些外设2000系列均在片内集成了 <BR>。 TI的5000系列主要长处是用于数字信号的算法处理，这里所讲算法处理主要是指在数 <BR>字信号处理时的一些算法，如FIR、IIR、FFT等等。5000系列的DSP的速度比2000快，24 <BR>07最快只能到40M，2800系列除外，5410的DSP可以达到160M，如现在我们主要用来做数 <BR>字信号方面的处理以及简单的静态图像处理等这样一些在资源需要处于中等的一些算法 <BR>。 TI的6000系列主要是用在实时图像处理，这个就更则重于算法处理。一般的硬件很少 <BR>自制，我们是用TI的DSK板再加上自主板相结合。  <BR><BR><BR>三. 使用C/C++语言编写基于DSP程序的注意事项 <BR><BR>1、 不影响执行速度的情况下，可以使 <BR>用c或c/c++语言提供的函数库，也可以自己设计函数，这样更易于使用“裁缝师”优化 <BR>处理，例如：进行绝对值运算，可以调用fabs()或abs()函数，也可以使用if...else.. <BR>.判断语句来替代。 <BR><BR>2、 要非常谨慎地使用局部变量，根据自己项目开发的需要，应尽<BR>可能多地使用全局变量和静态变量。<BR><BR>3、 一定要非常重视中断向量表的问题，很多朋友 <BR>对中断向量表的调用方式不清楚。其实中断向量表中的中断名是任意取定的，dsp是不认 <BR>名字的，它只认地址！！中断向量表要重新定位。这一点很重要。<BR><BR>4、 要明确dsp软件 <BR>开发的第一步是对可用存储空间的分析，存储空间分配好坏关系到一个dsp程序员的水平 <BR>。对于dsp，我们有两种名称的存储空间，一种是物理空间，另一种是映射空间。物理空 <BR>间是dsp上可以存放数据和程序的实际空间（包括外部存储器），我们的数据和程序最终 <BR>放到物理空间上，但我们并不能直接访问它们。我们要访问物理空间，必须借助于映射 <BR>空间才行！！但是映射空间本身是个“虚”空间，是个不存在的空间。所以，往往是映 <BR>射空间远远大于实际的物理空间，有些映射空间，如io映射空间，它本身还代表了一种 <BR>接口。只有那些物理空间映射到的映射空间才是我们真正可访问（读或写）的存储空间 <BR>。<BR><BR>5、 尽可能地减少除法运算，而尽可能多地使用乘法和加法运算代替。<BR><BR>6、 如果ti <BR>公司或第三方软件合作商提供了dsplib或其他的合法子程序库供调用，应尽可能地调用 <BR>使用。这些子程序均使用用汇编写成，更为重要之处是通过了tms320算法标准测试。而 <BR>且，常用的数字信号处理算法均有包括！！ <BR><BR>7、 尽可能地采用内联函数！！而不用一般 <BR>的函数！！可以提高代码的集成度。 <BR><BR>8、 编程风格力求简炼！！尽可能用c语言而不用 <BR>c++语言。我个人感到虽然c++终代码长了一些，好象对执行速度没有影响。<BR><BR>9、 因为在 <BR>c5000中double型和float型均占有2个字，所以都可以使用，而且，可以直接将int型赋 <BR>给float型或double型，但，尽可能地多使用int数据类型代替！这一点需要注意！！<BR><BR><BR>10、 程序最后至少要加上一个空行，编译器当这个空行为结尾提示符。 <BR><BR>11、 大胆使用 <BR>位运算符，非常好用！！<BR><BR>12、 2003年6月份从ti的网站上下到了关于tms320c67x系列d <BR>sp的快速算法库，于是，tms320c5000和c6000全系列的快速算法库都问世了，这些算法 <BR>库均可供c/c++语言直接调用，优化程度100%，实际编程时尽可能地使用（下载时可以同 <BR>时下载到说明文档和ascii源程序，可以根据自己需要作出修改，修改前最好做个备份） <BR><BR> <BR>]]></description>
	  <comments>2007-7-23 10:00:00<a href="http://blog.tianya.cn/blogger/post_show.asp?BlogID=454823&amp;PostID=10399798&amp;idWriter=0&amp;Key=0" target="_blank">(0)</a></comments>
    </item>

  </channel>
</rss>
