首先是器件选型问题:

MCU    选一个 STC12C5A16S2 LQFP 44
       其实就是51单片机,如果你没有玩过51单片机,就把它理解成一台超微型的电脑主机就可以了,里面有Flash存储器(可以理解成PC的硬盘,不过空间不大),还有RAM(可以理解成PC的内存,当然空间也不大)等等。至于为什么选STC这个品牌呢,因为烧写程序接口容易定义,直接用串口就可以进行程序的烧写了,所以选择用STC。为什么用12C5A系列呢,因为它的速度要比89C系列快,还有12T的模式,为什么要选16S2型号呢,因为有16k的Flash,当然还有08、32、40、48、52、56、60、62等型号,分别是指他们的Flash空间大小,S2表示支持双串口,还有AD的(表示数模转换IO口),为什么选择 LQFP 44 封装呢,因为这个封装比较容易焊接,LQFP 48 的话就太小了,对于手工板来说不好制作,也不方便焊接,如果用DIP40,又太大了,对于加密狗这种设备还是小点好看。

通讯层器件    选择 MAX232 SOP 16
              这是串口通讯的一个基本器件,是将MCU的IO输出转RS232 TTL电平的芯片(其实就是个电压转换芯片),因为串口通讯的电压是用9v,而MCU的IO脚的耐压能力没那么高,输出电压也没那么高,因为它只能输出5V或接受5V以内的电压,过高的电压会让MCU烧毁,所以需要将MCU输出的5V电压转换成9V发出去,让收到的9V电压转换成5V供进来,这样才能解决串口通讯上9V电压的通讯问题,当然,其实也可以用9014、9015这样的三极管来自己搭电路解决这个问题,但既然有现成的转换模块,外围电路也不多,成本也不高(买得便宜的话还有RMB 0.8元/块 的)。用 SOP 16封装的理由是:贴片封装,小巧好看省空间

时钟芯片    选择 DS12C887 或 DS12C887+
            这一款时钟芯片虽然样子大了点,但是好处是可以充电,每次充满电后,在没有任何供电的情况下,这个芯片可以自己调用内部电池的电自行工作,理论上可以跑10年。当然,也可以选择 DS1302 这样的芯片,有贴片封装的,不过要外接3V的电池和晶振。通常一个纽扣电池可以跑两年左右。不过我这里就只介绍DS12C887的方式。

 

完成基本器件选型后我们来设计好电路原理图

先安装一个 Protel DXP2004 或者 Protel 99 或者 Altium Designer Winter 09 之类的软件,然后开始设计原理图,这里我就不细说工具的使用部分了

先说一下供电部分电路

这个图里有4个器件,JP1是一个电源接口,可以用排针来弄,也可以直接弄成个焊盘直接焊接上电线。

C1是一个电解电容,因为无极性的电容没那么大的,所以就用电解电容,我使用贴片的,但看起来也不小

C2是一个无极性的贴片电容,用0805的就可以了,0603的太小不好焊接。

这两个电容主要用来滤波用的,作用是让电压更平稳的输出到后面的电路中。

LED1是一个发光二级管,也称LED,主要是用来显示是否已经上电的状态,R1是帮他接的500欧的电阻,因为LED的工作电压通常在1.5-3V左右,用这个电阻起到降压的作用,让他不至于烧毁。

这时的 VCC 就代表一个平稳的 +5V 供电,GND 就代表地。

我们再来看看 MCU 部分的电路

MCU 要能工作需要几个固定条件

1、供电,这款MCU供电是 5V 的,所以在 38 脚我们接上 VCC, EA脚注意也接上 VCC

2、接地,要电路能运转,必须形成电路的回路,根据 MCU 管脚定义,所以我们在 16脚接墒 GND(地)

3、上晶振,就像 PC 的 CPU 一样,MCU 也有时钟频率,PC 的 CPU 振荡频率是内部的,而这款 MCU 的是在外部振荡的,所以我们必须在外部给他接个晶振。而外部的振荡电路如下:

根据 MCU IO口定义,我们将振荡电路的两端接到 MCU 的第 14、15 口上。

Y1是表示晶振,频率是 22.1184 兆赫兹,为什么要用这个频率呢?主要是方便串口通讯的时钟频率。

C7 和 C8 是两个 33皮法的无极贴片电容,因为晶振频率高,每个振荡都有可能影响下面的地产生振荡,所以用两个比较小的电容进行滤波。其实用 20pf - 35pF 都可以的。

这样一来,MCU 所需基本的条件就有了,只要一供电,MCU就会读取内部的程序进行工作了。

但是程序是哪来的呢?当然是用户自己烧写进去的啦,那怎么烧写,通过什么地方烧写呢?上面我有提过,是通过串口烧写,所以,下一步我们就来看看这款MCU的串口通讯部分的电路。

4、串口通讯

这款MCU有两个串口,共4个IO管脚来处理串口通讯。我们只需要用到一个串口,所以我们使用第5脚和第7脚来进行串口通讯的收发处理。
     为什么非要用第5和第7脚呢,因为这是厂家出厂时定义给用户用作串口通讯用的两个管脚,烧写程序也是用这两个管脚传输数据后烧写的,如果只作为通讯,任何IO口都可进行串口通讯(但需要自己在程序里模拟处理整个通讯包过程),但是如果使用这个口,只需要设置几个参数,就很方便的可以直接使用中断处理串口通讯内容。

然而,串口通讯的电压标准是9V,也就是说,发送出去的电压是9V。接收的电压也是9V,我们使用的 MCU IO 口是 5V 的,如果这个电压直接送到 MCU 的 IO 口,后果可想而知,所以我们必须作电压转换,这里我们采用 MAX232 作为电平转换芯片。以下是 MAX232 的基本电路。

根据 MAX232 的外围电路标准,电容是在 0.1 微法到 1 微法到之间,主要是根据连接串口的电缆线长度而决定的。电容越大,线缆就可以越长,电容越小,线缆就越短,但是长度通常都用 1.5M,所以不用太在意这个值。我们这里使用 1微法,这样能保证线缆能尽可能的长的条件下可以进行通讯。C3、C4、C5、C6 都是 1 微法无极性的 0805 贴片电容,将第 10 脚接到 MCU 的第7脚,将第9脚接到 MCU 的第5脚,第7脚和第8脚分别接到PC串口上的2、3脚上,供电和接地部分看上图就清楚了,我也不多说了

5、时钟

这一款时钟芯片主要是8位并行通讯的,所以尽量将他的数据口直接到 MCU 的一组 IO 口上,我这里是接到了 MCU 的 P0 口上,这样方便程序的读写操作。在管脚连接上,尽量避免 P1.4-P1.7的 IO 口,因为这几个口是 SPI 脚的定义口,弄不好会影响程序烧写的,因为虽然说STC是通过串口烧写,但其实它是内部模仿 SPI 烧写的,所以尽量避免接这种可返回和设置的设备端口在这里使用。

到此为止,基本的原理图我们已经作出来了,剩下来的就是制作 PCB 图和制版写程序了。

根据上面的原理图,设计PCB图

设计时PCB图

打印时PCB图

PCB 的制作的细节我就不多说了,用一下DXP就知道了。

下面我们来看看制作电路板的过程:

材料准备:

热转印纸(可以用那种贴刻字剩下的那种背面有腊的那种纸)

激光打印机(打印图纸用)

过塑机(用来热转印)

三氯化铁(腐蚀电路板用)

天纳水(清洁转印的炭粉用)

小电钻和小钻头(用来钻孔,0.6mm、0.8mm、1mm的小钻头,点钻最好用小台钻)

一小节网线(用来弄过孔)

电烙铁

焊锡丝

松香

电路所需的电子元件

第一步:打印PCB

第二步:热转印

先将覆铜板用800-1000的沙纸大磨光亮,然后再把打印好的热转印纸剪出来放到覆铜板上,到过塑机上过几遍(注意:温度在180度-220度之间),等待板子冷却(可以用风扇加快冷却时间),最后将转印制慢慢撕下来,这样打印机的炭粉就被转印到覆铜板上了。

第三步:填线

用一些记号笔将转印不是很好的部分填好,这样腐蚀出来的板子才漂亮。

 

第四步:腐蚀电路板

准备一个盆子,然后向里面倒入清水,在放入三氯化铁搅拌均匀,然后才放入你要腐蚀的覆铜板。

腐蚀的过程中虽好摇晃一下盆子,这样会加快腐蚀效果。

第五步:钻孔

通常手工板用0.6的钻头来钻,普通焊盘用0.8mm或1mm的钻头来钻。

第六步:清洁板子

用卷筒纸占一些天纳水将板子上的黑色炭粉擦掉,然后再用1000的沙纸打磨光滑

第七步:处理过孔

用一小段剥了皮的网线心作为过孔连接材料,将网线心插入过孔处,然后用烙铁焊接到板子的两面上

第八步:焊盘上锡

将所有的焊盘先上好锡,然后再处理电子元件

第九步:焊接元件

遵循一个规则,先焊接小的矮的,从外到内的方式焊接就方便了。

因为这个板子设计的时候是直接插到串口卡的,所以最终就像下图所视

这是成品板的样子(打板的就是和自己的山寨货不同,很漂亮吧,呵呵)

好了,板子做好了,下面就是烧写程序了。STC的烧写程序在官网有下载:http://www.stcmcu.com

下面就是下位机程序和上位机程序的事情了。

本人提供这个范例的下位机程序和上位机API接口,大家可以用这些程序做个范例

下载地址:http://download.csdn.net/source/2629516

我们现在将板子供电、然后接好PC串口就可以开始烧写程序了:

第一步:先启动STC的烧写软件

第二步:设置

选择好CPU型号和你的设备所接的串口号

选择 OpenFile/打开文件 按钮选择 Dog.hex

然后点击 “Download/下载” 按钮

等到提示“请给 MCU 上电...” 的时候你再给你的设备插上电源

烧写程序将会自动把程序烧写到你的MCU中。

然后可以启动我提供的范例程序来调试。

至于下位机的开发工具,可以去下载一个 Keic 8 进行程序开发,使用的是 C 语言。我过一段时间也会发表一些关于 Keil C 的一些基本应用的文章。

自制一个串口带时钟的加密狗相关推荐

  1. T1商贸宝加密狗相关配置

    之前一台电脑只能插一个用友加密狗,现在支持一个电脑插两个加密狗 方法如下: T1服务器的安装路径找到:服务器/esrv/config的最后加上 MultiDog=1 ,添加好后要重启T1服务. --- ...

  2. vmware, hyper-v 等虚拟机无法识别USB加密狗解决方案

    USB Server 是硬件的USB设备远程连接解决方案,USB Server采用1.2GHz的arm SO供一个千光网络接口和28个USB 2.0接口,满足高速应用需求.USB Server对电源做 ...

  3. USBserver专业解决用友u8|金蝶等财务加密狗在虚拟机识别动态迁移解决方案

    现在随着大家广泛使用服务器虚拟化,随之也会有些小问题出现,例如;在我们做虚拟化时候,有个应用程序需要加密狗来启动,而虚拟机上没有USB口或者USB口不够,我通常都会采用主机加前置机来解决这个问题,但是 ...

  4. dspace软件加密狗不识别

    笔者安装完dspace软件后,需要进行解密才能使用软件.插入加密狗解密不成功,同时打开dspace control desk会出现报错 codemeter error XXX ,意思是加密软件缺乏许可 ...

  5. yt88加密狗不识别_YT88 是天域一个很不错的加密狗工具,可以源码 ,还 外壳 ,带DLK开发包。 Windows Develop 256万源代码下载- www.pudn.com...

    文件名称: YT88下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Windows_Unix 文件大小: 12909 KB 上传时间: 2016-05-01 下载次数: 0 提 供 ...

  6. 超级狗是集软件授权、课件保护和身份认证于一身的加密狗。

    超级狗是加密狗家族中最新一代软件保护和授权产品.它提供了强大的软件.课件防盗版功能以及灵活的软件授权功能,保护软件开发商的知识产权与核心技术,确保开发商的市场收入. 超级狗将软件保护与授权技术化繁为简 ...

  7. 制作加密狗程序_【火腿DIY】用于SDR应用程序的自定义热键键盘 | 视障人士的选择...

    Christoph用于SDR应用程序的自制自定义热键键盘 上周,我在SDRplay 社交页面上看到了Christoph Jahn的精彩文章. 克里斯托夫(Christoph)制作了一个与SDRuno一 ...

  8. 使用 RTL-SDR 加密狗和 OTG 适配器在 Android 上收听广播对话

    从急救人员到酒店清洁人员,每个人都使用在亚兆赫范围内运行的无线电进行通信,通常甚至没有对传输进行编码.虽然编码和加密越来越多地用于无线电通信,但只需 RTL-SDR 适配器和智能手机即可开始收听您周围 ...

  9. USB加密锁(加密狗)复制和破解Key解密

    加密狗不是绝对不能复制,专门从事加密狗破解的人,肯不能用USB复制,因为USB和加密狗的构造完全不同,你知道哪些usb加密锁(加密狗)复制和破解的方法?下面由深圳凯基迪科技带大家一起分享: 目前加密锁 ...

最新文章

  1. Hello Jsilk
  2. 在线实时大数据平台Storm单机部署
  3. 汇编OFFSET,SEG,LEA
  4. mysqldump主要参数探究
  5. 今天的编程语言是怎么来的?
  6. Linux 底层原理 —— epoll 与多路复用
  7. button执行onclick函数_千万别再一直无脑使用ES6的箭头函数了,它虽然很有用但并不是万能的...
  8. MyBatis基于Maven入门实例
  9. 亚马逊力推以太坊,微软谷歌准备跟进!
  10. Semantic Nets
  11. iOS | Swift图片剪切圆角
  12. 电脑声音有回音 怎么弄回去啊 5
  13. T细胞培养、分离方法大比拼
  14. Python open()函数文件打开、读、写操作详解
  15. python邮件发送
  16. 网站开发:从写代码到公网访问整个流程(CSDN征文活动第一期获奖文章)
  17. 导师-学生问题_广义表
  18. 旧上海黑社会老大杜月笙的经典语录
  19. 【Flutter】动画学习(二) Animation
  20. 基于国产龙芯 CPU 的气井工业网关研究与设计(二)

热门文章

  1. 广西男子酒驾冲撞宵夜摊多人受伤 民众自发抬车救人
  2. 面向对象设计原则与23种设计模式
  3. 防不胜防 4K电视和4K屏都有假的!到底怎样才是真4K?
  4. python量化实战_Python与量化投资 从基础到实战.pdf
  5. 天融信VPN断电后web不能访问解决
  6. windows hello 设置指纹时提示抱歉,出现问题 的一种解决方案
  7. java对键盘输入进行读取_JAVA 读取键盘输入
  8. 连接两个路由器在同一网段
  9. 什么是WindowServer进程,为什么它在Mac上运行?
  10. 如果说Android是Google的特工Smith,那么谁是Neo?