<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="css/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>大道无极‘技术BLOG</title><link>http://www.dadwj.cn/</link><description>单片机嵌入式技术交流</description><generator>RainbowSoft Studio Z-Blog 1.8 Walle Build 100427</generator><language>zh-CN</language><copyright>Copyright 2007 大道无极. Some Rights Reserved.  晋ICP备07002484号 </copyright><pubDate>Thu, 15 Jul 2010 10:34:50 +0800</pubDate><item><title>什么叫“假学习”</title><author>kingmacth@sina.com (kingmacth)</author><link>http://www.dadwj.cn/article/20100715397.html</link><pubDate>Thu, 15 Jul 2010 10:32:55 +0800</pubDate><guid>http://www.dadwj.cn/article/20100715397.html</guid><description><![CDATA[<p>一、QQ群 <br />一天上班开始看QQ群，聊到下班。里面争论（不会的东西，你也不会争论）的火热。美其名曰在学习，实际上你永远学不到新的东西。 <br />&nbsp; <br />二、看书 <br />只看自己能看懂的书。 <br />&nbsp; <br />三、听课 <br />听课，记笔记。真正的课程是要用来发现疑问，表达疑问，表达理解的，而不是只出耳朵听和记录教学内容的。&nbsp;别人讲的内容是经验的精华，但是别人无法代替你大脑的运转过程，无法代替你大脑逻辑的形成的过程。 <br />&nbsp; <br />四、实验 <br />单纯实验，和打字是没什么区别的，操作手册可以告诉我们结果和机理，敲1遍只是练习了命令输入，只有第2遍，才会有一些思考。 <br />&nbsp; <br />五、看贴 <br />每个帖子可能都是经过很多时间研究的心得，写得再好，只看的话，也还不是自己写的。看贴不回帖，只懂顶，都是假学习。 <br />&nbsp; <br />六、攻击 <br />乱喷人... <br />先问你一个问题，你懂什么，&ldquo;什么都不懂&rdquo;，好，你懂不懂IP地址怎么写吗？OK，写出来，请问&ldquo;为什么要用IP地址?&rdquo;。连自己懂什么都不知道，知道哪些是真正要懂的。攻击不到本质，说明你在假学习。 <br />&nbsp; <br />七、思考 <br />瞎YY... <br />记住一堆概念是没有用的，你必须把数字的信息转换成抽象的信息存储在大脑里，并且逻辑和系统同步，不断训练思考才能做到。 <br />&nbsp; <br />八、忘却 <br />有用的全忘了... <br />专家的大脑里只保存思路和方法，而不是细节，可以迅速解决任何问题。 <br />真正的忘却不是因为记忆的衰退，而是放下来，问题本身毫无意义。 <br />&nbsp; <br />九、表达 <br />表达不出来... <br />真正的学会，在于能够讲出来，使一个初学者也能够听得明白，才能算是学会了，不会表达，永远学不会。懂了，却举不出例子来，怎么能够叫做懂了呢？ <br />&nbsp;</p>]]></description><category>杂谈</category><comments>http://www.dadwj.cn/article/20100715397.html#comment</comments><wfw:comment>http://www.dadwj.cn/</wfw:comment><wfw:commentRss>http://www.dadwj.cn/feed.asp?cmt=1574</wfw:commentRss><trackback:ping>http://www.dadwj.cn/cmd.asp?act=tb&amp;id=1574&amp;key=ae8e3307</trackback:ping></item><item><title>GPS 的小知识</title><author>kingmacth@sina.com (kingmacth)</author><link>http://www.dadwj.cn/article/20100713186.html</link><pubDate>Tue, 13 Jul 2010 08:45:34 +0800</pubDate><guid>http://www.dadwj.cn/article/20100713186.html</guid><description><![CDATA[<p>转自：<a href="http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4148410&amp;bbs_page_no=1&amp;bbs_id=9999">http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4148410&amp;bbs_page_no=1&amp;bbs_id=9999</a></p><p>本人在GPS领域学习了近三年，所以给大家介绍下GPS的一些基础知识，算是为GPS开源活动贡献一份力量。有什么关于原理的东西，欢迎大家提问，共同讨论。 <br /><br />1.&nbsp;为什么GPS接收机需要四颗星才能定位。 <br />根据大家的常识，只要知道卫星的位置（卫星广播的电文中，播报了卫星的一些轨道参数，根据这些轨道参数，就可以计算出卫星的位置和速度，所以这个是已知的），再知道卫星到接收机的距离，在同一时间，只要有3颗卫星和3个距离，就可以解算出接收机的位置。&nbsp;这样一来，似乎三颗卫星就能定位了。&nbsp;但是大家要知道，卫星和接收机分别有自己的时钟，这两个时钟是不同步的。&nbsp;而接收机测量距离的原理，是计算卫星信号的传播时延。具体来说，就是卫星告诉你，我发这一帧信息的时间，然后接收机记录下，接收到这一帧的时间，通过计算这个时间差，乘以光速，就得到距离了。&nbsp;但是接收机不知道卫星的时间是什么时候开始的，或者说这两个时间系统是不同步的，所以我们在解算的时候，需要另外一个观测量，来估算卫星和接收机之间的时钟差。这样，由4个观测量（卫星到接收机的距离，因为这个距离受到种差的影响，并不准确，我们把它叫做伪距。），4个卫星的位置，通过解一个4元的非线性方程，就能算出接收机的位置了。 <br /><br />2.当卫星数目大于4个的时候怎么办？ <br />如果大家观察接收机的输出，就知道接收机在空旷的环境下，通常能接收到6-10颗卫星的信号。&nbsp;这样就有多于4个的伪距了，在这个时候，上面说的四元方程就不知一个解了。&nbsp;但是接收机的位置肯定只有一个。&nbsp;在这样的情况下，接收机一般使用最小二乘的方法，搜索出一个最佳位置，而这个位置，使得方程的误差最小。&nbsp;具体关于最小二乘的原理，大家可以看看相关的估算理论的书籍。 <br /><br /><br />3.为什么接收机在小于三个星的时候也能输出位置？ <br />有时候，大家观察接收机的输出时，会发现，同时跟踪的卫星只有3颗，可是依然有位置信息输出。&nbsp;我并不清楚商业接收机是如何实现的。但是有这么两个方法，一个是使用Kalman滤波，因为根据Kalman滤波中假定了系统方程，在状态量（位置和种差）并不完全可观测的情况下，&nbsp;Kalman滤波器可以权衡系统方程和现有的有限的观测量，估算出接收机位置，他像最小二乘一样，要求最测量数目要大于等于未知数数目。&nbsp;另外一个方法，是加入伪观测量，比如在短时间内，我可以假定接收机的高度没有明显变化，所以我们把上一时刻的接收机的高度作为观测量，带入方程。 <br /><br />4.定位精度是由什么决定的？ <br />GPS定位精度主要由观测量的质量和卫星的Geometry共同决定。 <br />观测量（伪距）的质量主要由以下因素决定：1）卫星轨道和时钟误差（1-3m），2）电离层误差（1-30米），3）对流层误差（0.6m），4）CA码噪声（0.6m），5）多径。（可以到上百米，这个就是在市区，GPS定位精度差的一个原因） <br /><br />Geometry，这个我也不知道怎么翻译，大致的意思就是接收机定位时，卫星的星座位置。看个图大家就明白些。 <br />&nbsp;</p><center><a href="http://www.dadwj.cn/upload/201007130846108287.jpg" target="_blank"><img src="http://www.dadwj.cn/upload/201007130846108287.jpg" border="0" alt="" /></a> <br />Geometry示意图&nbsp;<font color="#008000">(原文件名:Geometry.jpg)</font>&nbsp;</center><p><br /><br />图a是相对较好的Geometry，因为这个时候，接收机位置的不确定度比较小（阴影面积小），而图b，位置估算的不确定度较大（阴影面积大）。 <br /><br />5。研究GPS接收机简单的方法。 <br />从学习和学术的角度而言，软件接收机都是一个不错的选择。那么软件接收机和硬件接收机有什么区别呢？还是从图上来看吧， <br />&nbsp;</p><center><a href="http://www.dadwj.cn/upload/201007130846116185.gif" target="_blank"><img src="http://www.dadwj.cn/upload/201007130846117533.gif" border="0" alt="" /></a> <br />&nbsp;<font color="#008000">(原文件名:SoftwareGPS.gif)</font>&nbsp;</center><center><a class="tt16" onclick="fnQuickImageQuote(this,'files_30/ourdev_567411XTORF2.gif','原文件名:SoftwareGPS.gif')" href="http://www.dadwj.cn/upload/201007130846121528.jpg" target="_blank"><img src="http://www.dadwj.cn/upload/201007130846130465.jpg" border="0" alt="" /></a> <br />&nbsp;<font color="#008000">(原文件名:Frontend.jpg)</font>&nbsp;</center><center><a class="tt16" onclick="fnQuickImageQuote(this,'files_30/ourdev_567412NZW2CB.jpg','原文件名:Frontend.jpg')" href="http://www.dadwj.cn/upload/201007130846130035.jpg" target="_blank"><img src="http://www.dadwj.cn/upload/201007130846154578.jpg" border="0" alt="" /></a> <br />&nbsp;<font color="#008000">(原文件名:gsnrx.jpg)</font>&nbsp;</center><center><a class="tt16" onclick="fnQuickImageQuote(this,'files_30/ourdev_567413QMDUB3.jpg','原文件名:gsnrx.jpg')" href="http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4148410&amp;bbs_page_no=1&amp;bbs_id=9999###">引用图片</a></center><p><br /><br />6.&nbsp;为什么垂直的精度没有水平的精度高？ <br />刚才上面讲了Geometry的问题，可以想象，要确定水平位置，卫星可以散步在接收机四面八方，所以得到的水平的geometry就比较好，而对于高程，因为我们只能接收到头顶的卫星信号，而地球背面的卫星信号都被阻挡了，因此只有一面的卫星信号，这样的geometry就比较差，所以垂直方向上的不确定度就比水平方向大。 <br /><br />先说这么多吧。欢迎拍砖。 <br />&nbsp;</p>]]></description><category>电子技术</category><comments>http://www.dadwj.cn/article/20100713186.html#comment</comments><wfw:comment>http://www.dadwj.cn/</wfw:comment><wfw:commentRss>http://www.dadwj.cn/feed.asp?cmt=1572</wfw:commentRss><trackback:ping>http://www.dadwj.cn/cmd.asp?act=tb&amp;id=1572&amp;key=dab8cd4c</trackback:ping></item><item><title>腾讯微薄种子几颗</title><author>kingmacth@sina.com (kingmacth)</author><link>http://www.dadwj.cn/article/20100624781.html</link><pubDate>Thu, 24 Jun 2010 11:27:54 +0800</pubDate><guid>http://www.dadwj.cn/article/20100624781.html</guid><description><![CDATA[<p>腾讯微薄种子几颗！</p><p>http://t.qq.com/invite/66408f9f4b45278bb8e3#<br />我正在用腾讯微博记录我的生活，赶快收听我吧，一起分享精彩生活！</p><p>&nbsp;http://t.qq.com/invite/1f0ffa513db55d3822a7#<br />我正在用腾讯微博记录我的生活，赶快收听我吧，一起分享精彩生活！</p><p>http://t.qq.com/invite/6ff9a46a6cd2471c62ed#<br />我正在用腾讯微博记录我的生活，赶快收听我吧，一起分享精彩生活！</p><p>http://t.qq.com/invite/5f86f0f5cfb42bcf0851#<br />我正在用腾讯微博记录我的生活，赶快收听我吧，一起分享精彩生活！</p><p>http://t.qq.com/invite/25a3ffe6182963c7d589#<br />我正在用腾讯微博记录我的生活，赶快收听我吧，一起分享精彩生活！</p><p>http://t.qq.com/invite/9bf9448b293256a4e763#<br />我正在用腾讯微博记录我的生活，赶快收听我吧，一起分享精彩生活！</p><p>http://t.qq.com/invite/b57aa9ed0006dfe739f3#<br />我正在用腾讯微博记录我的生活，赶快收听我吧，一起分享精彩生活！</p><p>http://t.qq.com/invite/514363e14f943e0a428b#<br />我正在用腾讯微博记录我的生活，赶快收听我吧，一起分享精彩生活！</p>]]></description><category>原创</category><comments>http://www.dadwj.cn/article/20100624781.html#comment</comments><wfw:comment>http://www.dadwj.cn/</wfw:comment><wfw:commentRss>http://www.dadwj.cn/feed.asp?cmt=1571</wfw:commentRss><trackback:ping>http://www.dadwj.cn/cmd.asp?act=tb&amp;id=1571&amp;key=f52f397b</trackback:ping></item><item><title>GmPRS (Geo Mobile Packet Radio Service) 同步轨道卫星通信 </title><author>kingmacth@sina.com (kingmacth)</author><link>http://www.dadwj.cn/article/20100623608.html</link><pubDate>Wed, 23 Jun 2010 09:10:07 +0800</pubDate><guid>http://www.dadwj.cn/article/20100623608.html</guid><description><![CDATA[<p><strong>GmPRS</strong> (Geo Mobile Packet Radio Service) 同步轨道卫星通信</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 卫星通信是利用人造地球卫星作为中继的微波通信，它与地面光纤通信相比，最大的优点是无需埋设光缆，可以直接跨过群山、海洋进行远距离通信。</p><p>　　卫星在浩瀚的太空中运行，有其一定的轨道，但轨道形式有多种，按轨道形状分有圆形轨道、准圆形轨道和椭圆形轨道；按轨道面与地球赤道面的夹角大小分有零倾角轨道（卫星在地球赤道上空运行）、倾角轨道和极地轨道（卫星围绕地球两极运行，其轨道面与赤道面构成90&deg;）；按卫星离地球的高度分（泛指圆形轨道）有低轨道（一般在1000~5000km之间，绕地球一周约需2~4小时），中轨道（一般在5000~20000km之间，绕地球一周约需4~12小时）和高轨道（一般在20000~36000km之间，绕地球一周约需12~24小时）。目前，在各种轨道上运行的卫星种类繁多，有用于探测地球资源的资源卫星，有用于获取气象信息的气象卫星，有用于提供基准定位的导航卫星，有用于科学研究的科研卫星，有用于搜集军事情报的侦察卫星，有用于传送电话或电视的通信卫星等，不同用途的卫星大多有不同的运行轨道。</p><p>　　那么，同步轨道卫星通信又是怎么回事呢？先说什么叫同步轨道卫星，所谓同步轨道卫星是指：卫星距离地球的高度约为36000&nbsp;km，卫星的运行方向与地球自转方向相同、运行轨道为圆形、运行周期与地球自转一周的时间相等，即24小时。利用同步轨道卫星进行通信的方式便叫同步轨道卫星通信。</p><p>　　当同步轨道卫星轨道面的倾角为零度，即卫星在地球赤道上空运行时，由于运行方向与地球自转方向相同，运行周期又与地球同步，因此，人们从地球上仰望卫星，仿佛悬挂在太空静止不动，所以，把零倾角的同步轨道称作静止轨道，在静止轨道上运行的卫星称作静止卫星。</p><p>　　静止卫星上的天线所辐射的电波，对地球的覆盖区域基本是稳定的，在这个覆盖区内，任何地球站之间可以实现24小时不间断通信。不过，一颗静止卫星只能覆盖地球21370万平方公里，仅占地球总面积的40%，尚有60%的地区不在其覆盖范围内，无法进行通信，一般地说，配置三颗静止卫星即可基本解决全球通信问题，目前，在太平洋、大西洋和印度洋上空各有一颗国际通信卫星组织的静止卫星在运行，提供全球通信使用。但是，静止卫星无法覆盖地球的高纬度地区，实践证明，在纬度在70~75&deg;的地区，通信已经困难，超过75&deg;的地区根本无法通信。</p><p>　　倾斜轨道和极地轨道同步卫星从地球上看是移动的，但却每天可以经过特定的地区，因此，通常用于科研、气象或军事情报的搜集，以及两极地区和高纬度地区的通信。</p><p>　　同步轨道卫星通信的优点十分突出：覆盖地区大，传输距离远，通信容量可控，基本不受地面自然灾害的影响，在抢险救灾等应急通信中能发挥极其重要的作用。但是，同步轨道卫星通信也有缺点：</p><p>　　首先是传输时延较大。我们知道，电波的传输速度是每秒30万公里，而讲话的话音从地球站发出，经卫星中转，再到大洋彼岸的另一座地球站收下，大约走了8万公里，需时约260毫秒，收端即刻回答，并经同样路由返回发端，又需约260毫秒，这就是说，发话人最快也要半秒钟后才能听到对方的回答，话音延时现象严重，特别是在传送电视节目时，画面上会出现讲话人的口形与声音不同步现象，让人感到别扭。<br />其次，局部地区通话的背景噪声较大。因为静止卫星部署在地球的赤道上空，而地球上五大洲的大部分地区分布在赤道两侧，因此，大多数地球站偏离于赤道，这些地球站的天线不像赤道附近地球站的天线那样可以直面朝天，而是仰角较小，地球站距离赤道越远，天线的仰角便越小，从天线引入的地面噪声便越大，从而导致通话的信噪比下降。</p><p>　　再次，每年的某些时段易受天象的影响。当太阳&mdash;地球&mdash;卫星走成一线时，将发生地星蚀，卫星处于地球的阴影区，此时，星上的太阳能电池缺乏光照，只能靠蓄电池供电，这种情况发生在每年的春分（3月21日）和秋分（9月22日）前后21天，春分和秋分两天的遮挡时间最长，达72分钟，为了保证通信，通常采用轮流关闭部分转发器的办法，以节省能源。当太阳&mdash;卫星&mdash;地球走成一线时，将发生&ldquo;天淩&rdquo;，此时，卫星处于光照最强的位置，由太阳引起的强大噪声从天线引入，这种情况也发生在每年的春分和秋分前后，持续6天，每次约数分钟，时间虽然不长，但影响严重，能中断通信。当太阳&mdash;月球&mdash;卫星走成一线时，发生月星蚀，卫星处于月球的阴影区，也会影响星上太阳能电池的正常工作，这种情况不是每年都会出现，但有时一年则会出现数次，每次短则数分钟，长则2小时，平均每次约40分钟。</p><p>　　同步轨道静止卫星主要用于陆地固定通信，但也用于海上移动通信，不过，它不象陆上蜂窝移动通信那样有那么多的基站，只有卫星是一座大的基站，移动业务交换中心依然设在岸上（称为岸站），海上移动终端之间（即船舶与船舶之间）的通信，需经卫星两跳后才能实现，例如，如果甲船需同乙船联系，那么，甲船将信号发至卫星，经卫星一跳到达岸站上的移动业务交换中心，然后，岸站又将信号发至卫星，再经卫星一跳到达乙船。</p>]]></description><category>电子技术</category><comments>http://www.dadwj.cn/article/20100623608.html#comment</comments><wfw:comment>http://www.dadwj.cn/</wfw:comment><wfw:commentRss>http://www.dadwj.cn/feed.asp?cmt=1570</wfw:commentRss><trackback:ping>http://www.dadwj.cn/cmd.asp?act=tb&amp;id=1570&amp;key=1aaa165e</trackback:ping></item><item><title>百度增加个手写功能</title><author>kingmacth@sina.com (kingmacth)</author><link>http://www.dadwj.cn/article/20100622593.html</link><pubDate>Tue, 22 Jun 2010 13:58:15 +0800</pubDate><guid>http://www.dadwj.cn/article/20100622593.html</guid><description><![CDATA[<p>正搜索东西呢无意中发现的。试了一下效果还不错。可以帮助搜索一些不认识的字了。以前是用输入法的手写功能输入。这回百度直接带了。看了一下还是汉王的技术。</p><p><img title="" alt="" src="http://www.dadwj.cn/upload/201006221359396383.JPG" onload="ResizeImage(this,520)" /></p><p>瞎胡画也能识别出个汉字来，不禁感叹我们的汉字 的博大精深啊！<img alt="" src="http://www.dadwj.cn/image/face/Hehe.gif" /></p>]]></description><category>原创</category><comments>http://www.dadwj.cn/article/20100622593.html#comment</comments><wfw:comment>http://www.dadwj.cn/</wfw:comment><wfw:commentRss>http://www.dadwj.cn/feed.asp?cmt=1568</wfw:commentRss><trackback:ping>http://www.dadwj.cn/cmd.asp?act=tb&amp;id=1568&amp;key=ecdcf848</trackback:ping></item><item><title>基于VB与单片机的温度测控系统设计</title><author>kingmacth@sina.com (kingmacth)</author><link>http://www.dadwj.cn/article/2010061046..html</link><pubDate>Thu, 10 Jun 2010 08:52:37 +0800</pubDate><guid>http://www.dadwj.cn/article/2010061046..html</guid><description><![CDATA[<p><strong>0 引言<br /></strong>&nbsp;&nbsp;&nbsp; 在现代测控系统中，由于PC机具有强大的数据处理能力和良好的用户交互界面，单片机具有较强的现场抗干扰能力及良好的性价比，因此以PC机为上位机实施用户控制和以单片机为下位机进行实时数据采集的分布式智能化控制系统无疑具有很好的应用前景。本文中单片机实现了温度检测，具有较好的实时性；PC机完成了数据显示、存储及统计分析，绘制了实时温度曲线，并对系统目前所处状况做出了评判。两者之间以串行口进行通信联络。<br /><br /><b>l 数据采集系统的硬件基础</b><br />&nbsp;&nbsp;&nbsp; 该系统的下位机选择Atreel公司的AT89S51单片机作为控制核心，负责采集现场温度值。温度传感器将温度转换为电压信号，经模／数转换器ADC0809转换成8位数字量，并经AT89S51的P1口进入单片机保存。上位PC机通过串行口与下位机联络，向下位机发送控制命令和接收下位机上传的数据以及进行人机交互。上位机采用VB 6．0进行人机交互界面设计，并利用其MSComm控件实现与下位机简单而高效的串行通信。充分发挥了单片机在实时数据采集和PC机对图形处理、显示以及数据库管理上的优点。使得单片机的应用已不仅仅局限于传统意义上的自动监测或控制，而是形成了以网络为核心的分布式多点系统的发展趋势。由于上下位机串行口工作电平不一致，它们之间通过MAX232芯片将单片机TTL电平转换为RS 232电平，构成如图1所示的系统结构框图。</p><p align="left"><img height="207" src="http://www.dadwj.cn/upload/201006100853282840.jpg" width="399" border="0" alt="" /></p><p><br /><br /><b>2 VB环境下串行通信的实现方法</b><br />&nbsp;&nbsp;&nbsp; VB可视化界面的设计风格具有简单、易学、高效的特点，已成为众多开发人员采用的工具，且被广泛应用到各个领域。VB的MSComm通信控件，只需用户编写少量的程序代码即可完成通信软件的开发过程。<br /><b>2．1 MSComm控件简介</b><br />&nbsp;&nbsp;&nbsp; MSComm控件是Microsoft公司提供的串行通信ActiveX控件，MSComm控件通过串行口发送和接收数据，为应用程序提供串行通信功能。MS-Comm通信控件的主要属性如下：<br />&nbsp;&nbsp;&nbsp; (1)CommPort属性用于设置或返回通信连接端口。在设计时，CommPort属性值可以设置成从1～16的任何数(缺省值为1)。<br />&nbsp;&nbsp;&nbsp; (2)Settings属性用于设置初始化参数。以字符串的形式设置或返回联机速率、奇偶校验、数据位、停止位等4个参数。其格式为：&ldquo;BBBB，P，D，S&rdquo;。其中，BBBB表示联机速率；P表示奇偶校验位检查方式；D表示数据位数；S表示停止位数。该系统设其为&ldquo;9600，N，8，l&rdquo;。<br />&nbsp;&nbsp;&nbsp; (3)Portopen属性用于设置或返回通信串口的状态(开或关)。Portopen属性为Boolean类型，当值为True时，表示打开串口；当值为False时，表示关闭串口，并清空接收和发送缓冲区。<br />&nbsp;&nbsp;&nbsp; (4)Input属性用于从接收缓冲区读取数据。<br />&nbsp;&nbsp;&nbsp; (5)Output属性用于向发送缓冲区写入数据。<br />&nbsp;&nbsp;&nbsp; (6)InputMode属性用于读取或设置从接收缓冲区读取数据的格式，当InputMode=O时，数据以文字形式读取；当InputMode=1时，数据以二进制形式读取。<br /><b>2．2 上位机程序设计</b><br />&nbsp;&nbsp;&nbsp; 上位机主要负责发送控制命令，以及数据的接收、处理、计算、数据的显示等功能。上位机程序分为四个部分：界面设计、程序初始化、数据通信、数据处理。程序流程如图2所示。</p><p align="left"><img height="588" src="http://www.dadwj.cn/upload/201006100853305326.jpg" width="259" border="0" alt="" /></p><p><br />&nbsp;&nbsp;&nbsp; 主操作界面主要分为四个组成部分，如图3所示。为使界面清晰明了，用frame控件将其隔开。</p><p align="left"><img style="width: 464px; height: 327px" src="http://www.dadwj.cn/upload/201006100853327060.jpg" border="0" alt="" /></p><p><br />&nbsp;&nbsp;&nbsp; 其中，温度界限部分主要用来显示用户自己设定的温度上下限；数据接收部分采用外部控件MSFlexGrid来显示已经接收过来的数据；统计计算部分用来显示对数据分析后的结果，如最大值、最小值、平均值等，最后对当前系统状况作出综合评判；温度曲线部分显示当前所有温度的变化情况，每个温度值对应曲线突出的一点，其中两条虚线内的点代表温度值在界限范围内，两条虚线外的两个点则表示该温度值超出了界限范围。<br />&nbsp;&nbsp;&nbsp; 进入主界面后，用户首先单击&ldquo;开始联络&rdquo;，此时上位机会向下位机发出联络信号，下位机受到预先设定的联络信号后，会将数据发送过来；然后单击&ldquo;接收数据&rdquo;命令，此时会在MSFlexGrid控件中按先后顺序依次显示接收到的数据；在进行数据处理之前，用户可根据自身需求进行温度界限的设定，仅单击&ldquo;界限设置&rdquo;命令即可实现；最后进行数据处理，单击相应命令按钮后，会在界面绘出当前温度曲线，并计算出各种统计参数。<br /><b>2．3 串口通信初始化程序</b><br />&nbsp;&nbsp;&nbsp; 该程序主要用于对数据缓冲区以及串口部分的初始化，如串口的选择、串口的数据格式等。这部分程序的代码如下：<br />&nbsp;&nbsp;&nbsp; <img height="271" src="http://www.dadwj.cn/upload/201006100853352641.jpg" width="478" border="0" alt="" /><br /><b>2．4 上位机通信程序</b><br />&nbsp;&nbsp;&nbsp; 该程序由数据发送(联络信号)和数据接收组成。两部分程序分别写在对应的命令按钮&ldquo;开始联络&rdquo;、&ldquo;接收数据&rdquo;的Click事件下。具体程序代码如下：<br />&nbsp;&nbsp;&nbsp; <img style="width: 515px; height: 654px" src="http://www.dadwj.cn/upload/201006100853377123.jpg" border="0" alt="" /><br /><br /><p>3 下位机通信软件设计<br />&nbsp;&nbsp;&nbsp; 下位机程序包括初始化部分、数据采集和接收联络信号部分、数据发送部分。<br />&nbsp;&nbsp;&nbsp; AT89S51单片机串行通信由定时器Tl作为波特率发生器，其波特率与PC机一致。数据的传送格式为8位数据位和1位停止位。采用查询方式发送和接收数据，定时器T1设置为工作模式2，串行口设置为工作方式1。该设计将通信速率设置为9 600 b／s，SMOD=0，单片机晶振频率为11．059 2 MHz，此时定时器T1的初值应被设为：<br />&nbsp;&nbsp;&nbsp; <img height="69" src="http://www.dadwj.cn/upload/201006100853416328.jpg" width="531" border="0" alt="" /><br /><b>3．1 接收上位机命令程序</b><br />&nbsp;&nbsp;&nbsp; 接收上位机命令程序：<br />&nbsp;&nbsp;&nbsp; <img height="174" src="http://www.dadwj.cn/upload/201006100853414545.jpg" width="471" border="0" alt="" /><br /><b>3．2数据发送程序</b><br />&nbsp;&nbsp;&nbsp; 数据发送程序：<br />&nbsp;&nbsp;&nbsp; <img height="342" src="http://www.dadwj.cn/upload/201006100853410620.jpg" width="468" border="0" alt="" /><br /><br /><b>4 结语</b><br />&nbsp;&nbsp;&nbsp; 单片机与上位机的通信在工业控制现场的应用比较广泛，利用VB提供的通讯控件MSComm对上位机进行编程比使用API函数编程更简单灵活。本文通过具体实例分析了计算机与单片机之间的通信方法。调试结果证明，该方案切实可行，能够确保通信的稳定，具有重要的现实意义。</p></p>]]></description><category>单片机</category><comments>http://www.dadwj.cn/article/2010061046..html#comment</comments><wfw:comment>http://www.dadwj.cn/</wfw:comment><wfw:commentRss>http://www.dadwj.cn/feed.asp?cmt=1566</wfw:commentRss><trackback:ping>http://www.dadwj.cn/cmd.asp?act=tb&amp;id=1566&amp;key=da9841a7</trackback:ping></item><item><title>锂电池充电电路原理及应用</title><author>kingmacth@sina.com (kingmacth)</author><link>http://www.dadwj.cn/article/20100603654.html</link><pubDate>Thu, 03 Jun 2010 10:20:28 +0800</pubDate><guid>http://www.dadwj.cn/article/20100603654.html</guid><description><![CDATA[<p>锂离子电池以其优良的特性，被广泛应用于: 手机、摄录像机、笔记本电脑、无绳电话、电动工具、遥控或电动玩具、照相机等便携式电子设备中。</p><p><b>&nbsp;&nbsp; 一、锂电池与镍镉、镍氢可充电池：</b><br />锂离子电池的负极为石墨晶体，正极通常为二氧化锂。充电时锂离子由正极向负极运动而嵌入石墨层中。放电时，锂离子从石墨晶体内负极表面脱离移向正极。所以，在该电池充放电过程中锂总是以锂离子形态出现，而不是以金属锂的形态出现。因而这种电池叫做锂离子电池，简称锂电池。 <br />锂电池具有：体积小、容量大、重量轻、无污染、单节电压高、自放电率低、电池循环次数多等优点，但价格较贵。镍镉电池因容量低，自放电严重，且对环境有污染，正逐步被淘汰。镍氢电池具有较高的性能价格比，且不污染环境，但单体电压只有1.2V，因而在使用范围上受到限制。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p><p><b>二、锂电池的特点：</b></p><p>&nbsp;</p><p>1、具有更高的重量能量比、体积能量比；<br />2、电压高，单节锂电池电压为3.6V，等于3只镍镉或镍氢充电电池的串联电压； <br />3、自放电小可长时间存放，这是该电池最突出的优越性；<br />4、无记忆效应。锂电池不存在镍镉电池的所谓记忆效应，所以锂电池充电前无需放电；<br />5、寿命长。正常工作条件下，锂电池充/放电循环次数远大于500次；<br />6、可以快速充电。锂电池通常可以采用0.5～1倍容量的电流充电，使充电时间缩短至1～2小时；<br />7、可以随意并联使用；<br />8、由于电池中不含镉、铅、汞等重金属元素，对环境无污染，是当代最先进的绿色电池；<br />9、成本高。与其它可充电池相比，锂电池价格较贵。</p><p><b>三、锂电池的内部结构 ：<br /></b>&nbsp;&nbsp;&nbsp; 锂电池通常有两种外型：圆柱型和长方型。 <br />电池内部采用螺旋绕制结构，用一种非常精细而渗透性很强的聚乙烯薄膜隔离材料在正、负极间间隔而成。正极包括由锂和二氧化钴组成的锂离子收集极及由铝薄膜组成的电流收集极。负极由片状碳材料组成的锂离子收集极和铜薄膜组成的电流收集极组成。电池内充有有机电解质溶液。另外还装有安全阀和PTC元件，以便电池在不正常状态及输出短路时保护电池不受损坏。&nbsp;&nbsp;&nbsp;&nbsp; <br />单节锂电池的电压为3.6V，容量也不可能无限大，因此，常常将单节锂电池进行串、并联处理，以满足不同场合的要求。&nbsp;</p><p><b>四、锂电池的充放电要求；<br /></b>1、锂电池的充电：根据锂电池的结构特性，最高充电终止电压应为4.2V，不能过充，否则会因正极的锂离子拿走太多，而使电池报废。其充放电要求较高，可采用专用的恒流、恒压充电器进行充电。通常恒流充电至4.2V/节后转入恒压充电，当恒压充电电流降至100mA以内时，应停止充电。<br />充电电流（mA）=0.1～1.5倍电池容量（如1350mAh的电池，其充电电流可控制在135～2025mA之间）。常规充电电流可选择在0.5倍电池容量左右，充电时间约为2～3小时。</p><p>2、锂电池的放电：因锂电池的内部结构所致，放电时锂离子不能全部移向正极，必须保留一部分锂离子在负极，以保证在下次充电时锂离子能够畅通地嵌入通道。否则，电池寿命就相应缩短。为了保证石墨层中放电后留有部分锂离子，就要严格限制放电终止最低电压，也就是说锂电池不能过放电。放电终止电压通常为3.0V/节，最低不能低于2.5V/节。电池放电时间长短与电池容量、放电电流大小有关。电池放电时间（小时）=电池容量/放电电流。锂电池放电电流(mA)不应超过电池容量的3倍。（如1000mAH电池，则放电电流应严格控制在3A以内）否则会使电池损坏。<br />目前市场上所售锂电池组内部均封有配套的充放电保护板。只要控制好外部的充放电电流即可。</p><p><b>五、锂电池的保护电路：<br /></b>两节锂电池的充放电保护电路如图一所示。由两个场效应管和专用保护集成块S--8232组成，过充电控制管FET2和过放电控制管FET1串联于电路，由保护IC监视电池电压并进行控制，当电池电压上升至4.2V时，过充电保护管FET1截止，停止充电。为防止误动作，一般在外电路加有延时电容。当电池处于放电状态下，电池电压降至2.55V时，过放电控制管FET1截止，停止向负载供电。过电流保护是在当负载上有较大电流流过时，控制FET1使其截止，停止向负载放电，目的是为了保护电池和场效应管。过电流检测是利用场效应管的导通电阻作为检测电阻，监视它的电压降，当电压降超过设定值时就停止放电。在电路中一般还加有延时电路，以区分浪涌电流和短路电流。该电路功能完善，性能可靠，但专业性强，且专用集成块不易购买，业余爱好者不易仿制。</p><div><p>&nbsp;</p><div><img class="blogimg" style="width: 461px; zoom: 1; height: 302px" src="http://www.dadwj.cn/upload/201006031021254600.jpg" border="0" small="0" alt="" /></div><p><b>六、简易充电电路：<br /></b>现在有不少商家出售不带充电板的单节锂电池。其性能优越，价格低廉，可用于自制产品及锂电池组的维修代换，因而深受广大电子爱好者喜爱。有兴趣的读者可参照图二制作一块充电板。其原理是：采用恒定电压给电池充电，确保不会过充。输入直流电压高于所充电池电压3伏即可。R1、Q1、W1、TL431组成精密可调稳压电路，Q2、W2、R2构成可调恒流电路，Q3、R3、R4、R5、LED为充电指示电路。随着被充电池电压的上升，充电电流将逐渐减小，待电池充满后R4上的压降将降低，从而使Q3截止， LED将熄灭，为保证电池能够充足，请在指示灯熄灭后继续充1&mdash;2小时。使用时请给Q2、Q3装上合适的散热器。本电路的优点是：制作简单，元器件易购，充电安全，显示直观，并且不会损坏电池．通过改变W1可以对多节串联锂电池充电，改变W２可以对充电电流进行大范围调节。缺点是：无过放电控制电路。图三是该充电板的印制板图（从元件面看的透视图）。&nbsp;&nbsp;</p><p>&nbsp;</p><div><img class="blogimg" style="width: 421px; zoom: 1; height: 336px" src="http://www.dadwj.cn/upload/201006031021255653.jpg" border="0" small="0" alt="" /></div></div><div class="newstext" id="ff_content">&nbsp;</div><p>&nbsp;</p><div><img class="blogimg" style="width: 369px; zoom: 1; height: 242px" src="http://www.dadwj.cn/upload/201006031021262085.jpg" border="0" small="0" alt="" /></div><p><br /><b>七、单节锂电池的应用举例<br /></b>1、 作电池组维修代换品<br />有许多电池组：如笔记本电脑上用的那种，经维修发现，此电池组损坏时仅是个别电池有问题。可以选用合适的单节锂电池进行更换。</p><p>2、 制作高亮微型电筒<br />笔者曾用单节3.6V1.6AH锂电池配合一个白色超高亮度发光管做成一只微型电筒，使用方便，小巧美观。而且由于电池容量大，平均每晚使用半小时，至今已用两个多月仍无需充电。电路如图四所示。</p><p align="center" forimg="1"><img class="blogimg" style="width: 338px; zoom: 1; height: 204px" src="http://www.dadwj.cn/upload/201006031021260374.jpg" border="0" small="0" alt="" /></p><p align="left" forimg="1">3、代替3V电源<br />由于单节锂电池电压为3.6V。因此仅需一节锂电池便可代替两节普通电池，给收音机、随身听、照相机等小家电产品供电，不仅重量轻，而且连续使用时间长。</p><p align="left" forimg="1"><b>八、锂电池的保存</b>：<br />锂电池需充足电后保存。在20℃下可储存半年以上，可见锂电池适宜在低温下保存。曾有人建议将充电电池放入冰箱冷藏室内保存，的确是个好注意。</p><p align="left" forimg="1"><b>&nbsp;九、使用注意事项</b>：<br />锂电池绝对不可解体、钻孔、穿刺、锯割、加压、加热，否则有可能造成严重后果。没有充电保护板的锂电池不可短路，不可供小孩玩耍。不能靠近易燃物品、化学物品。报废的 锂电池要妥善处理。&nbsp;</p>]]></description><category>电子技术</category><comments>http://www.dadwj.cn/article/20100603654.html#comment</comments><wfw:comment>http://www.dadwj.cn/</wfw:comment><wfw:commentRss>http://www.dadwj.cn/feed.asp?cmt=1563</wfw:commentRss><trackback:ping>http://www.dadwj.cn/cmd.asp?act=tb&amp;id=1563&amp;key=2a2ab3ed</trackback:ping></item><item><title>用FIFO实现超声测厚系统A／D与ARM接口设计</title><author>kingmacth@sina.com (kingmacth)</author><link>http://www.dadwj.cn/article/20100602228.html</link><pubDate>Wed, 02 Jun 2010 06:00:57 +0800</pubDate><guid>http://www.dadwj.cn/article/20100602228.html</guid><description><![CDATA[<p>在高频超声波数据采集系统中，很多高速A／D转换器往往不能直接与处理器相连接，这时就需要使用FIFO在处理器与A／D转换器之间架一座桥梁，FIFO的先入先出特性可以方便缓存大量的数据块。在基于ARM的超声波测厚系统中，所用为1 MHz以上的高频超声波探头，测量数据经A／D转换后频率与ARM处理器的数据接收能力不匹配，因此需在A／D与ARM处理之间连接一个FIFO来解决以上问题。该设计选用AD公司的A／D芯片AD9283，FIFO选用Cyperss公司的CY7C4261，两者的最大采样频率都是100 MHz。ARM采用Samsung公司的S3C2410处理器。三者都具有很强的外部接口能力，方便构成无缝连接，硬件接口电路简单，调试方便。<br /><br /><b>1 芯片选型<br />1．1 S3C2410处理器</b><br />&nbsp;&nbsp;&nbsp; S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核，采用0．18&mu;m制造工艺的32位微控制器。该处理器拥有：独立的16 KB指令Cache和16 KB数据CACHE，MMU，支持TFT的LCD控制器，NAND闪存控制器，3路UART，4路DMA，4路带PWM的Timer，I／O口，RTC，8路10位ADC，Touch Screen接口，I2C-BUS接口，IIS-BUS接口，2个USB主机，1个USB设备，SD主机和MMC接口，2路SPI。S3C2410是16／32位RISC体系结构处理器，使用ARM920T CPU核的强大指令集，处理器最高可运行在203 MHz。<br /><b>1．2 AD9283高速模数转换器</b><br />&nbsp;&nbsp;&nbsp; 在超声波无损检测系统中，超声波探头的频率一般是2～10 MHz。取探头频率为5 MHz，根据采样定理，采样频率最好是探头频率的5～8倍，因此A／D芯片选用AD公司的AD9283，它的最大采样速率达100 MHz，可以满足系统要求。<br /><b>1．3 FIFO存储器CY7C4261</b><br />&nbsp;&nbsp;&nbsp; FIFO存储器作为A／D与ARM之间的桥梁，其参数指标直接影响数据的采集速度。首先，FIFO存储器的读／写速度要足够快，为方便调试，最好能和A／D器件的最大速度相一致；其次，FIFO存储器的存储容量要适宜，如果容量过大会造成资源浪费，如果容量过小会造成溢出或者数据采集速度过慢。<br />&nbsp;&nbsp;&nbsp; 常用被测物厚度为10 mm，当信号长度取前8个波峰，整个系统工作在极限频率100 MHz的情况下，有如下计算：<br />&nbsp;&nbsp;&nbsp; 采样次数=采样速率&times;时间<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =采样速率&times;(2&times;厚度&times;8／超声波速度)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =100&times;2&times;0．01&times;8／5 900<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =2 712次<br />&nbsp;&nbsp;&nbsp; 即需要将近3 KB的缓存。该超声波测厚系统最大需测量厚度50 mm的物体，故需要容量15 K&times;8 B的FIFO。因此FIFO的深度要大于15 KB；宽度大于A／D的位数，即大于8位；最大工作速率100 MHz，与A／D采样速率相一致。该设计选用CY公司的FIFO存储器CY7C4261，其最大采样速率达100 MHz，与AD9283最大采样速率相同；容量为16 KB&times;9 B，可以满足数据量要求。<br /><br /><b>2 接口设计</b><br />&nbsp;&nbsp;&nbsp; AD9283是8位模／数转换器，CY7C4261是9位FIFO，S3C2410的数据总线是32位。CY7C4261只需接S3C2410的低8位DO～D7。由于FIFO的先入先出结构，系统中不需要任何地址线的参与，大大简化了电路。A／D采样所得数据要实时送入FIFO，两者的写时钟频率必须一样，且AD9283和CY7C4261的最小时钟输入都是10 ns，操作起来统一方便。74ALS08是四-二输入与门，把ARM的脉宽调制波输出口中的TOUTl(GPBl)，TOUT2(GPB2)配置为通用输出口，对74ALS08的通断进行控制，从而对A／D和FIFO的写时钟进行控制。S3C2410的CLKOUTO与CY7C4261的RCLK相连为FIFO提供读时钟。CY7C4261的全满标志位<img height="26" src="http://www.dadwj.cn/upload/201006020602021144.jpg" width="33" border="0" alt="" />与S3C2410的外部中断EINTl相连用以触发外部中断。S3C2410的nRSTOUTl与CY7C4261的<img height="23" src="http://www.dadwj.cn/upload/201006020602023341.jpg" width="33" border="0" alt="" />相连用以复位FIFO。接口框图如图1所示。</p><p align="left"><img style="width: 453px; height: 399px" src="http://www.dadwj.cn/upload/201006020602026616.jpg" border="0" alt="" /></p><p><br /><br /><b>3 时序设计</b><br />&nbsp;&nbsp;&nbsp; 通过两个与门分别对A／D和FIFO的写时钟进行控制。因为AD9283从模拟输入开始到该次转换的数据出现在输出口上需要4个时钟周期，并且在高速度采样时导线的延时效果会非常明显，若把A／D和FIFO的时钟连在一起，很可能过多地采到无效数据。分开控制以后，通过软件延时，可以方便地分别对A／D和FIFO的时钟进行控制。调试起来相当方便，力图把采到无效数据的位数减至最低。AD9283的工作时序如图2所示，CY7C4621写时序图如图3所示。</p><p align="left"><img style="width: 469px; height: 811px" src="http://www.dadwj.cn/upload/201006020602021761.jpg" border="0" alt="" /></p><p><br />&nbsp;&nbsp;&nbsp; 采样时。通过程序使能TOUTl，TOUT2输出为1。此时采样时钟脉冲与TOUTl，TOUT2相与后被分别送入AD9283的时钟输入ENCODE和CY7C4621的写时钟输入WCLK。此时A／D开始工作，A／D将转换数据送至自己的输出口D0～D7。当写使能<img height="20" src="http://www.dadwj.cn/upload/201006020602026204.jpg" width="58" border="0" alt="" />为低、WEN2为高的时候，A／D输出口上的数据在WCLK的上升沿被依次写入FIFO。A/D和FIFO每来一次脉冲，便完成一次模／数转换并把数据顺序存入FIFO。CY7C4261的数据最大储存容量是16 KB，在完成了1 6 KB次转换之后，CY7C426l将不能再存入新的数据，此时存储器满标志<img height="25" src="http://www.dadwj.cn/upload/201006020602021144.jpg" width="30" border="0" alt="" />输出低电平(在未满时输出高电平)。把此信号接到S3C2410的外部中断EINTl上，利用它由高到低的变化产生中断，以表明一组数据采集完成。<br />&nbsp;&nbsp;&nbsp; 在中断中，ARM首先迅速关闭采样脉冲信号(使TOUTl和TOUT2)的输出为0，停止A／D和FIFO的工作。ARM外部时钟信号CLKOUTO与FIFO的读输入RCLK接在一起，ARM每执行一次I／O读操作，cLKOUT0便向RCLK发出一脉冲。把FIFO读使<img height="19" src="http://www.dadwj.cn/upload/201006020602026204.jpg" width="56" border="0" alt="" />能和WEN2置为低，同时连续执行16 K次I／O读操作，数据便依次从CY7C4261送入S3C2410系统，整个数据采集工作就此完成。在进行每一次数据的采集前，将CY7C4261先复位，把S3C24-10的nRSTOUTl配置为通用输出口，给CY7C4261的RS引脚输入一个不小于10 ns的低脉冲，即在ARM的nRSTOUTl引脚输出一个低脉冲。这样可以更充分地保证FIFO的读、写指针的稳定。<br /><br /><b>4 数据采集流程</b><br />&nbsp;&nbsp;&nbsp; 超声波测厚系统数据采集工作流程主要包括ARM初始化、输入激励脉冲、使能外部中断、时钟送入A／D、FIFO、等待中断。停止A／D及FIFO，ARM读数据，复位FIFO。流程图如图4所示。</p><p align="center"><img style="width: 271px; height: 490px" src="http://www.dadwj.cn/upload/201006020602025276.jpg" border="0" alt="" /></p><p><br /><br /><b>5 结语</b><br />&nbsp;&nbsp;&nbsp; 通过实际设计在基于ARM的超声波无损检测系统中，采用FIFO可以使高速A／D与ARM处理器之间得到很好的无缝连接，解决两者之间不匹配的问题。通过软件设置，可以灵活调整A／D，FIFO及ARM的操作时序，调试简便，保证了数据采集的安全可靠。该接口电路简单，灵活高效，具有很高的应用价值。</p>]]></description><category>单片机</category><comments>http://www.dadwj.cn/article/20100602228.html#comment</comments><wfw:comment>http://www.dadwj.cn/</wfw:comment><wfw:commentRss>http://www.dadwj.cn/feed.asp?cmt=1562</wfw:commentRss><trackback:ping>http://www.dadwj.cn/cmd.asp?act=tb&amp;id=1562&amp;key=8676a06f</trackback:ping></item><item><title>基于STC12C5A60S2的马弗炉温度控制器设计</title><author>kingmacth@sina.com (kingmacth)</author><link>http://www.dadwj.cn/article/20100602467.html</link><pubDate>Wed, 02 Jun 2010 05:59:15 +0800</pubDate><guid>http://www.dadwj.cn/article/20100602467.html</guid><description><![CDATA[<p>马弗炉是高性能机电一体化的新一代智能产品，适用于煤炭、电力、化工、冶金等行业和部门进行工业分析。马弗炉温度控制器设计以单片机STC12C5A60S2作为控制中心，采用PID控制算法和自适应控制技术，自动调整预加热温度，并可以存储记忆，确保试验顺利完成，自动化程度高。</p><p>总体设计方案<br />1.马弗炉主要技术指标<br />测温范围：0～1000℃<br />测温精度：&plusmn;3℃<br />控温精度：&plusmn;10℃（在250～1000℃范围内）<br />升温时间：(室温～920℃)&le;30min<br />电源：AC220V&plusmn;22V@50Hz&plusmn;1Hz<br />功率：3.5kW<br />具有快速灰化和缓慢灰化、挥发分、罗加指数、黏结指数等四个专用加热程序；另外，温度控制器有一个自选程序，通过按键可选择所需设定的温度和保温时间。</p><p><br />2.设计思路<br />马弗炉温度控制器设计采用PID算法来控制PWM的占空比，由PWM信号控制IGBT的通断，使用时钟专用芯片DS1302进行定时控制，从而实现在不同时段对炉温的控制。</p><p><br />3.系统结构<br />马弗炉温度控制器由单片机STC12C5A60S2，热电偶放大器与数字转换器MAX6675，时钟芯片DS1302，Ｉ级精度Ｋ形热电偶，键盘及显示系统组成，系统结构如图1所示。</p><p><img src="http://www.dadwj.cn/upload/201006020600157233.jpg" alt="" /></p><p>图1&nbsp; 系统结构框图</p><p>PID简介<br />1.基本概念<br />①基本偏差e(t)：表示当前测量值与设定目标之间的偏差。设定目标是被减数，结果可以是正或负，正数表示还没有达到，负数表示已经超过了设定值，这是面向比例项用的一个变动数据。</p><p><br />②累计偏差&sum;e(t)=e(t)+e(t-1) +&hellip;+e(t-n)：这是我们每一次测量得到偏差值的总和，是代数和，要考虑正负号运算的。这是面向积分项用的一个变动数据。</p><p><br />③基本偏差的相对量e(t)-e(t-1)：用本次的基本偏差减去上一次的基本偏差，用于考察当前控制对象的趋势，作为快速反应的重要依据，这是面向微分项用的一个变动数据。</p><p><br />④三个基本参数Kp、Ki、Kd：这是做好一个控制器的关键常数，分别称为比例常数、积分常数和微分常数。不同的控制对象需要选取不同的值，经过现场调试才能获得较好的效果。</p><p><br />2.三个基本参数Kp、Ki、Kd实际控制中的作用<br />①比例环节：即时成比例地反应控制系统的偏差信号e(t)，偏差一旦产生，调节器立即产生控制作用以减小偏差。比例作用大，可以加快调节，减少误差，但过大比例会使系统稳定性下降。</p><p><br />②积分环节：主要用于消除静差，提高系统的无差度。积分作用的强弱取决于积分时间常数Ti。Ti越大，积分作用越弱，反之则越强。</p><p><br />③微分环节：能反应偏差信号的变化趋势(变化速率)，并能在偏差信号的值变得过大之前，在系统中引入一个有效的早期修正信号，从而加快系统的动作速度，减小调节时间。</p><p>3.参数的设置与调整<br />①加温迅速达到目标值，但温度过冲很大。</p><p>&nbsp;</p><p><br />比例系数太大，致使在未达到设定温度前加热比例过高；微分系数过小，对对象反应不敏感。</p><p><br />②加温经常达不到目标值，小于目标值时间多。</p><p><br />比例系数过小，加温比例不够；积分系数过小，对静差补偿不足。</p><p><br />③基本在控制温度内，但上下偏差大，经常波动。</p><p><br />微分系数小，对及时变化反应慢；积分系数过大，使微分反应被钝化。</p><p><br />④受环境影响较大</p><p><br />微分系数小，对及时变化反应慢；设定的基本定时周期过长，不能得到及时修正。</p><p><br />下面给出PID控制程序：<br />#ifndef _PID_H__<br />#define _PID_H__<br />#include&lt;intrins.h&gt; <br />#include&lt;math.h&gt; <br />#include&lt;string.h&gt; <br />struct PID { <br />unsigned int SetPoint; // 设定目标 Desired Value <br />unsigned int Proportion; // 比例常数 Proportional Const <br />unsigned int Integral; // 积分常数 Integral Const <br />unsigned int Derivative; // 微分常数 Derivative Const <br />unsigned int LastError; // Error[-1] <br />unsigned int PrevError; // Error[-2] <br />unsigned int SumError; // Sums of Errors <br />} <br />struct PID spid; // PID Control Structure <br />unsigned int rout; // PID Response (Output) <br />unsigned int rin; // PID Feedback (Input) <br />sbit output=P1^4; <br />unsigned char high_time,low_time,count=0;//占空比调节参数 <br />unsigned char set_temper=920; <br />void PIDInit (struct PID *pp) <br />{ <br />memset ( pp,0,sizeof(struct PID)); <br />} <br />unsigned int PIDCalc( struct PID *pp, unsigned int NextPoint ) <br />{ <br />unsigned int dError,Error; <br />Error = pp-&gt;SetPoint - NextPoint; // 偏差 <br />pp-&gt;SumError += Error; // 积分 <br />dError = pp-&gt;LastError - pp-&gt;PrevError; // 当前微分 <br />pp-&gt;PrevError = pp-&gt;LastError; <br />pp-&gt;LastError = Error; <br />return (pp-&gt;Proportion * Error//比例 <br />+ pp-&gt;Integral * pp-&gt;SumError //积分项 <br />+ pp-&gt;Derivative * dError); // 微分项 <br />}</p><p><br />4. 温度采集电路<br />热电偶作为一种主要的测温元件，具有结构简单、制造容易、使用方便、测温范围宽、测温精度高等特点。但是，热电偶的应用却存在着非线性、冷端补偿、数字化输出等几方面的问题。设计中采用的MAX6675是一个集成了热电偶放大器、冷端补偿、A/D转换器及SPI串口的热电偶放大器与数字转换器，其电路如图2所示。</p><p><img src="http://www.dadwj.cn/upload/201006020600153345.jpg" alt="" /></p><p>图2 温度采集电路图</p><p><br />MAX6675从SPI串行接口输出数据的过程如下：MCU使CS变低并提供时钟信号给SCK，由SO读取测量结果。CS变低将停止任何转换过程；CS变高将启动一个新的转换过程。一个完整串行接口读操作需16个时钟周期，在时钟的下降沿读16个输出位，第1位和第15位是一伪标志位且总为0；第14位到第3位为以MSB到LSB顺序排列的转换温度值；第2位平时为低，当热电偶输入开放时为高；开放热电偶检测电路完全由MAX6675实现，为开放热电偶检测器操作，T-必须接地，并使接地点尽可能接近GND脚；第1位为低电平以提供MAX6675器件身份码，第0位为三态。</p><p><img src="http://www.dadwj.cn/upload/201006020600156512.jpg" alt="" /></p><p>图3&nbsp;&nbsp; SO端输出温度数据的格式</p><p><img src="http://www.dadwj.cn/upload/201006020600155563.jpg" alt="" /></p><p>图4&nbsp;&nbsp; MAX6675的SPI接口时序</p><p>下面给出相应的温度值读取程序及数据转换程序:<br />void max6675()<br />{<br />&nbsp;uchar m;<br />&nbsp;uint temp;<br />&nbsp;temp=0;<br />&nbsp;max_sck=0;<br />&nbsp;max_cs=1; <br />&nbsp;delay(180ms);<br />&nbsp;&nbsp;&nbsp; max_cs=0 ;<br />&nbsp;max_sck=1;&nbsp;&nbsp;<br />&nbsp;_nop_();<br />&nbsp;max_sck=0;<br />&nbsp;_nop_();<br />&nbsp;if(max_so==1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{temp |=0x0001;}<br />&nbsp;for(m=0;m&lt;15;m++)<br />&nbsp;{<br />&nbsp;&nbsp;temp&lt;&lt;=1;<br />&nbsp;&nbsp;max_sck=1;<br />&nbsp;&nbsp;_nop_();<br />&nbsp;&nbsp;max_sck=0;<br />&nbsp;&nbsp;if(max_so==1)&nbsp;&nbsp;&nbsp;&nbsp;{temp |=0x0001;} &nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;<br />&nbsp;temp=(temp&amp;0x7fe0)&gt;&gt;5;<br />&nbsp;t[0]=temp/1000+0x30;<br />&nbsp;t[1]=temp%1000/100+0x30;<br />&nbsp;t[2]=temp%100/10+0x30;<br />&nbsp;t[3]=temp%10+0x30;<br />&nbsp;print(1,0,t);&nbsp; <br />}</p><p>&nbsp;</p><p><img src="http://www.dadwj.cn/upload/201006020600155053.jpg" alt="" /></p><p>图5&nbsp; 定时电路图</p><p><img src="http://www.dadwj.cn/upload/201006020600150121.jpg" alt="" /></p><p>图6&nbsp; 单片机系统电路图</p><p><img src="http://www.dadwj.cn/upload/201006020600153407.jpg" alt="" /></p><p>图7&nbsp; 主程序流程图</p><p><br />5.定时电路<br />使用时钟专用芯片DS1302进行定时控制，通过外加很少的电路就可以实现高精度的时钟信号。外围电路简单可靠，时间精度高，通过外接锂电池后可以实现时间信息存储。</p><p><br />6.单片机系统<br />采用STC12C5A60S2组成单片机最小系统，有2路PWM，选用一路作为IGBT的控制信号。另外，STC12C5A60S2内部还有1K的EEPROM，用于设置自选程序，通过按键选择所需设定的温度和保温时间。显示模块采用128&times;64液晶显示。</p><p><br />7.软件设计</p><p><img src="http://www.dadwj.cn/upload/201006020600155772.jpg" alt="" /></p><p>图8&nbsp; 子程序流程图</p><p><br />程序流程图如图8所示。</p>]]></description><category>单片机</category><comments>http://www.dadwj.cn/article/20100602467.html#comment</comments><wfw:comment>http://www.dadwj.cn/</wfw:comment><wfw:commentRss>http://www.dadwj.cn/feed.asp?cmt=1561</wfw:commentRss><trackback:ping>http://www.dadwj.cn/cmd.asp?act=tb&amp;id=1561&amp;key=7519a392</trackback:ping></item><item><title>中波Q表制作原理及实现</title><author>kingmacth@sina.com (kingmacth)</author><link>http://www.dadwj.cn/article/20100601329.html</link><pubDate>Tue, 01 Jun 2010 06:27:57 +0800</pubDate><guid>http://www.dadwj.cn/article/20100601329.html</guid><description><![CDATA[<p>原理：R4两端输出超低阻抗的信号电压源，串联在LC谐振回路中。当电路发生谐振时，L和C的感抗和容抗相消，回路只剩下只剩下R4与LC谐振器的损耗电阻r两者串联。并R4两端的电压就是r两端的电压。这样，我们只在测量出R4两端的电压U1，就可以得到r两端的电压也是U1。再测量C3两端的电压U2，最后Q=U2/U1。<br />为什么R4要设计得那么小。其实大一些也可以，即使用1欧也可以，这时R3就要加大，以减小激励电流，使R4两端电压不会太高。R4两端电压太高有个坏处，那就是高Q电路中，C3两端电压U2太高，会超过T2的动态范围。另外，从L7两端看进去，R4与r是并联的，那么R4使用1欧有个坏处，那就是高Q电路的r很小，电流主要流过r而不是R4，因此流经待测电感L的电流是相对恒定的，那么谐振频率附近C3两端电压是相对稳定的，这时我们要反过来测量R4两端电压也知道是否准确谐振，而R4两端电压又比较小，不易测量，所以建议R4取小一些。不过R4不能过小，不然激励不够，如果测量的是大环天线的Q值，那么大环感应的电台信号可能比激励信号强，干扰测量。<br />L4只有1圈，与L1的比例关系是1:14，所以L1接上100欧的R3负载，只相当于L1两端接上14*14*100=19.6千欧负载，不会影响振荡器的正常工作。L4两端的电压是0.4伏，这里指的是峰峰电压，相当于交流峰值电压0.4/2=0.2V，下文不特别指明，交流信号均指峰峰电压或电流。R4等效折算到L6上，相当于0.1*20*20=40欧，那么流经R3的电流为0.4V/(100+40)=0.0028mA。经电流互感器后，L7上的电流约为0.0028*20=56mA，那么R4两端的电压为56mA*0.1欧=5.6mV。当然，实际测量线圈Q值时，以R4两端电压以实测为准。L7与R4回路的电流非常大，会对电路产生不良影响，，所以该回路的引线要短一些，如果引线做得很长，导线电路的电感量还会影响互感器的电流变换效果的。<br />T2是阻抗变换器，相关电路应路离振荡器和互感器远一些，以免干扰。这部分电路除电源正负极连线外，全部架空连接，这样分布参数最小。<br />在音响的功放电路中，会用到一些零点几欧的电阻，找那些不是线圈形式的电阻就可以了。我用了两个0.22欧的电阻并联，得到0.11欧的无感电阻。</p><p><img style="width: 530px; zoom: 1; height: 285px" src="http://www.dadwj.cn/upload/201006010628237263.gif" border="0" alt="" /></p><p>那么流经L6的电流约为<br />如果是高Q线圈，C4的负载阻抗的纯部分不宜忽略，最好在计算时进行修正。这个纯阻等效到C3两端大约是8M欧，此外瓷片电容的损耗可能也要估算。瓷片电容的损耗是多少我还没有查出来。<br />小量的波形失真：由于负载比较重，所以输出波形有点失真，但比较轻微，不会影响R4两端电压测量的准确性。 <br />无感电阻问题：调节C2改变信号频率，如果R4两端电压发生变华，说明R4不是无感电阻，应更换。<br />互感器L6的初级电感量约为400uH。磁心选用节能灯内部的磁环，那是高导磁的高频环。</p>]]></description><category>电子技术</category><comments>http://www.dadwj.cn/article/20100601329.html#comment</comments><wfw:comment>http://www.dadwj.cn/</wfw:comment><wfw:commentRss>http://www.dadwj.cn/feed.asp?cmt=1560</wfw:commentRss><trackback:ping>http://www.dadwj.cn/cmd.asp?act=tb&amp;id=1560&amp;key=7b4f581c</trackback:ping></item></channel></rss>
