公告:服务器迁移已顺利完成! 网址全面启用 https

服务器2号 服务器3号 服务器4号 服务器5号

申请VIP无广告,支付宝,微信,USDT!
在线客服请尝试以下不同链接如果进不了的话在线客服(1) (2) (3) (4) (5) (6)
(7) (8) (9) 实时开通

查看完整版本: 走出国门!高手用龙芯打造摩斯电码播放器[11P]

carolie 2015-9-17 23:18

走出国门!高手用龙芯打造摩斯电码播放器[11P]

近期龙芯俱乐部完成了龙芯开源创客智龙主板的首发,这个基于龙芯1C处理器的创客主板,不仅有了国内的创客用户,还被带到了国外,通过社区协作实现了很有趣的创客作品。

我其实很早就知道我国有龙芯这么一款国产处理器,但对其的印象一直停留在“安全应用”、“试验品”等字眼上,认为一个普通人并不会接触到龙芯系列的处理器;尤其是在得知龙芯所使用的MIPS架构无法兼容Windows之后,便更加认为龙芯不会在桌面系统上有所成就。

直到今年三月份在某新闻客户端上看到了一则新闻,内容大约是“中国的树莓派 开源龙芯主板开始接受团购”,发现其价格为199元并不贵,同时由于对国产CPU的好奇,便拍下了这款产品。在经过了漫长的等待——五月份发货,以及我八月份才回国过暑假——之后,终于拿到了这块板子。
[img]http://img1.mydrivers.com/img/20150916/s_52ea4bc3564a4ffda20e5dfb4b3bacfb.jpg[/img]
当然由于这块板子,我也通过社区了解到了龙芯产品的最新动向,比如自主指令集,以及3A2000和3B2000 CPU。这些新产品受到了媒体的广泛关注,龙芯中科也因此被人民日报头版所报道,在此便不再累述。
[img]http://img1.mydrivers.com/img/20150916/s_b8f7bca989f644e4870d8e065b4e3ff7.png[/img]
事实上,我此前并没有任何嵌入式开发的经验。在最开始拿到板子的时候,甚至不知道要通过串口线连接主板。但是通过开源社区中提供的教程,我很快便掌握了对主板的简单操作。
[img]http://img1.mydrivers.com/img/20150916/s_3968065edf2c43dc903a3cda7a89a195.png[/img]
[b]小作品——摩斯电码播放器[/b]

摩斯码使用不同长短的连续波(嘀和嗒)和间隙来表示26个英文字母,10个数字以及一些标点符号,由于其编码简单、可靠性高,被广泛应用于无线电通讯领域。其简便性使我萌生了利用龙芯主板来将英文文本翻译为摩斯码,并通过扬声器以正弦波播放出来的想法。

由于我并没有无线电执照及相应的设备,所以此作品仅限以声音形式播放而不能通过无线电发报,但进行改动,龙芯主板是完全有能力成为全自动发报机的。

[b]硬件部分[/b]

此作品电路板的基本系统结构为:使用运算放大器芯片构造一个正弦波发生器,其频率可由一个双联电阻器在约500Hz至无限大(实际极限数值由芯片决定,但肯定超出人耳听力范围)之间调整,此正弦波将作为扬声器的声源。

扬声器与正弦波之间有一个由开源龙芯主板GPIO接口所控制的继电器,用来控制线路的断连,从而达到播放摩斯码的目的。

确定了系统结构之后,下一步就要制作电路原理图并确定元件参数。毫无电路设计基础的我在网络上找到了这张原理图作为参考。
[img]http://img1.mydrivers.com/img/20150916/s_c65f69f92d5a4e2e81e1cec3d7dec0b9.png[/img]
然而此电路在模拟器中的模拟并不成功。在QQ群中electron群友的帮助下,将运算放大器改为LF356N,并对电路做出了大幅度简化及调整,确定了电路构造以及元件参数,并在软件中进行了电路模拟,成功输出了预定频率的正弦波。
[img]http://img1.mydrivers.com/img/20150916/s_2aeac54665cd412aaf273aed476dba64.png[/img]
我住在天津,作为一个大城市购买电子元件并不困难,我很快便购齐了所需的元件及面包板,开始真正的制作。
[img]http://img1.mydrivers.com/img/20150916/s_78038e5be45845228c6a6ce9e53a62e6.jpg[/img]
最初的三个元件
[img]http://img1.mydrivers.com/img/20150916/s_be760079e7ab4d4a96bf733010633bca.jpg[/img]
杂乱的环境

在实际制作中,我碰到了许多在模拟中没有预料到的问题。首先碰到的问题是GPIO无法直接触发继电器。

通过查阅所使用的HRS1H-S型继电器的数据表,发现其线圈需要约300mW的功率来触发,然而龙芯GPIO的最大输出功率仅为约50mW。

在QQ群中群友的建议下,我使用了一颗8050三极管来提升功率,成功触发了继电器。

第二个问题则是吃了不认真和不懂电路原理的亏。当我把一切元件及线路按照电脑自动生成的鼠线连接之后,扬声器没有任何反应。

这个问题困扰了我好几天,我一点一点地将面包板上的接线与电脑给出的鼠线比对,希望能发现什么接线错误,然而并没有。而这时我也该回到英国了,于是只能把所有的东西装到盒子里,到了英国再处理。
[img]http://img1.mydrivers.com/img/20150916/s_a0d7e83f8bbe4d228902c55ec9554069.png[/img]
到了英国,我就有万用表能用了。通过测试发现,输出端是有直流电压输出的,而且与预期的结果一样,这说明电路并没有断路;但当测试交流电压时,万用表毫无反应,这说明输出的波形是一条直线,而不是正弦波。

既然电路板上没问题,那会不会是电路本身的设计问题?但如果电路设计有问题的话,仿真软件又是如何输出预期的波形的呢?

我开始仔细检查起仿真软件中的电路,最终发现了问题:
[img]http://img1.mydrivers.com/img/20150916/s_65f7468245a74d36afe00b8df57e0ca7.png[/img]
问题就出在这个-6.0V身上。此前我一直是把4号针脚接地的,并没有意识到这个负电压的问题。当我在仿真软件中也把4号针脚接地后,其输出的波形也变成了一条直线。

依然是在群友的帮助下,我对线路做了一点小改动,将4*1.5V AA电池盒的负极接到4号针脚而不是地,并把第二节电池的负极当成了地。由此便创造出了一个±3V的直流电源,但这也导致了输出电压成了原来的一半,因此不再需要起初串联在扬声器上的限流电阻。
[img]http://img1.mydrivers.com/img/20150916/s_5ab3f5b5d57446ef9e363c24f6ce9e20.png[/img]
以上即为最终的电路图。可见由2颗3.3nF电容和一个最大电阻为100kΩ的双联电位器所组成的反馈回路。运放输出端直接连接扬声器正极,扬声器的回路则由继电器所控制。继电器的线圈一边接地,一边与一颗三极管的发射级连接,此三极管的集电极由电池驱动,基极则连接GPIO输出口和一个限流电阻。5.1kΩ电阻+2个1N4004二极管并联的设计用来限制峰值电压。

最终,扬声器里成功输出了干净的正弦声波,通过调整双联电位器可将其频率调高至人耳听力以外。至于波形实际的噪音水平为多少,最高可达到的频率为多少,由于我并没有示波器,因此无从得知。
[img]http://img1.mydrivers.com/img/20150916/s_5d1d35adc854465486d7d82c985e5ee3.png[/img]

lotus96 2015-9-18 09:36

这个必须支持,我们泱泱大国终于有了自己的处理器了。虽然我等学渣不能理解其中的原理,但是通过文章我能感觉到这个芯片开启了我国处理器的新纪元!

starpop 2015-9-18 10:10

龙芯这个项目本身是好的,但做龙芯人有点太不争气,当然,这也也不能全怪他们。毕竟硬件这个东西不同于软件,软件Linux是开源的,只要投入足够的人力去调研,可以解决安全性的问题,但硬件就不行了,一个芯片摆在那,根本不知道里面有啥东西,有没有留后门也不清楚。所以有自主知识产权的CPU是很重要的,这一点龙芯的意义非常大。并且,目前来看龙芯比起那些号称“中国人自己的操作系统”的人要靠谱的多。但龙芯本身问题还很多,比如综合性能还落后于intel系列。能查到的信息显示龙芯的计算能力很强,龙芯3B的计算峰值能到128GFLOPS,对这个数据我是有些怀疑的,但也不排除是龙芯在浮点计算方面有了专门的优化。但其它方面是否能赶超intel还不好说,从市面上可以买到的龙芯产品的评价来看,表现很一般。龙芯使用的指令集是MIPS,MIPS近些年过的日子很糟,甚至是糟透了,低端的被ARM打压的厉害,高端的被intel甚至PPC欺负。龙芯选择的这个指令集对不对,还需要让市场来检验。

holdmyhands 2015-9-18 17:23

任何产品没有商业化之前都是没什么说服力的。要有实际的产品让大众来体验才能真正让民众觉得有希望。正负出资的科研单位搞了太多不靠谱的东西了……

tomhome 2015-9-19 08:42

回复3楼,龙芯在某些方面是专门做了优化的,整体综合性能确实有待提升
页: [1]
查看完整版本: 走出国门!高手用龙芯打造摩斯电码播放器[11P]