手把手教你写一张PIC卡(877卡、84卡)

转载 2007年09月15日 23:23:00
 

手把手教你写一张PIC卡(877卡、84卡)

(渔歌QQ6500138编译,所用软件可以在http://carddiy.126.com上下载得到)

       写卡的过程就是将卡内集成的可以编程的集成电路都写上HEX文件或者BIN文件,一般的877卡(一般卡片内部是877芯片,但部分用876芯片,做成卡片都一样,写卡也通用),84卡甚至8515卡,由于片内集成的24C16或者24C64的通信是与片内集成CPU(PIC16F877,PIC16F84,90S8515)直接进行的,故写卡的第一步是在CPU(只有CPU才有IO口与外界相连,卡内结构决定的)上写上LOADER文件,然后依靠LOADER文件在CPU运行时起写卡器与24CXX通信的桥梁作用,这样写卡器就可以将需要写入24CXX的文件写入到其中。当然写好24CXX文件后,LOADER文件就没有任何作用,最后写入的封卡文件(CPU的工作文件)会掩盖掉LOADER文件。
    有两种特殊的情况,一种是有些877卡用的软件只是用到卡内的CPU,这样写卡的时候只需要将CPU用的HEX文件写入,这样就不用写LOADER文件了。另外一种是为方便写卡,有些封卡文件本身含有LOADER部分(因LOADER只起过桥作用,文件很小),这样就可以省掉第三步。
    一般我们用的PIC智能卡里边的芯片都是877或许国外的卡有些是876做的,但程序一般通用。先郑重提示烧友:初次写卡要在window98的台式机上操作,成功后可以转到别的系统试试。

简易步骤表
步骤 作用 硬件 软件 写入卡片的文件
第一步 写loader文件 JDM ICPROG(器件选择16FXX) loader字样
第二步 写eeprom文件 PHOENIX ICPROG(器件选择24CXX)(84卡还可以用winphoenix) 24C,eeprom,eep,bin等字样
第三步 写pic文件 JDM ICPROG(器件选择16FXX) PIC,FLASH,16FXX,VIA等字样
注: 写入卡片的文件一般文件的后缀都是.hex(16进制格式)或者.bin(二进制格式),其实是可以互相转换的,有人喜欢问如何转换.hex文件和. bin文件,除了有专用的hex2bin软件外,用icprog打开一个hex文件然后用另存为的方式可以将它存为bin格式文件。既然是文件,名字是可 以随便起的,但是为了辨认方便,一般写到卡片的16FXX器件的文件名字可能有PIC,FLASH,16FXX,VIA字样,而写到卡片的24CXX器 件,可能有24C,eeprom,eep,bin等字样。文件从何而来,当然是专业编程的人员编写的,这个没有几年的功夫是不可能的了,所以得到别人编写 的文件总是会费点劲的。

 

一、写LOADER文件。点击下载loader文件,请解压后使用,loader文件分

1.按图连接硬件(卡片金属片朝下插入卡槽,初烧注意)

2.下载运行ICPROG英文版本(点此下载),ICPROG汉化版本(点此下载),汉化版本因为菜单已经汉化,不适于本教程,可参照设置。

对于初次写卡的烧友,如果写卡不成功,强烈建议在安装windows98的台式机子下操作,等成功后可以换到新的操作系统。笔记本电脑因为节电设计,驱动能力有限,不建议使用

安装后,运行ICPROG再WINXP或者2000下会出现如下错误提示,等需要到下载IC-Prog NT/2000驱动,下载解压出的icprog.sys文件放到icprog.exe文件同一个目录下,并需要在settings--options---mic下启用,同时在SETING->OPTION下设置 Enable MCLR as Vcc 选项。见下面的介绍。

windows98下出现如下界面,在右边的下拉菜单中选择PIC16F877(84卡选择PIC16F84)。

3.点击打开文件按纽,出现打开窗口,选择876或84卡的LOADER文件(文件名字一般都有load字样,),后按打开,即将LOADER文件凋入软件缓冲区(buffer).选择正确的loader文件对下一步(第二步)用PHOENXI写卡器写24C16或者24C64文件至关重要

4.打开文件之后的界面如下,设置好下面的关键设置

 

关于关键设置2和3的说明:此设置的目的是控制写入的文件可以读出,用于卡片的成功校验.界面可能会因ICPROG的不同版本而不同,84芯片的界面比较简单,只需将Fuses里边的CP项别打钩。调入hex文件后各选项可能变化,但初学者只要保证将84卡CP项,877卡的Code Protect下的CP OFF选上CPD别打沟即可,别的选项默认即可。

关于关键设置4和5的说明:此设置的目的是写877卡内的24C64或者84卡内的24c16用的,设置不对将导致PHOENIX编程器写877卡内的24C64或者84卡内的24c16出现错误。

 

3.按F3出现下面菜单(首次使用ICPROG此菜单会自动跳出),一般计算机串口选COM1(COM2口的计算机要选com2),后按OK,COM口选择对后在读写卡的过程中写卡器的信号指示灯(一般用绿色的LED)会相应闪亮。

4.确认硬件已经接好的情况下,点击上面的command菜单的program写卡,按yes开始写卡,如下图所示。写卡会有进度提示,结束后会有校验成功的报告,写卡错误也会有相应的提示。

二、在写过正确的LOADER文件后,将要写877卡内的24C64或者84卡内的24c16的文件(一般有eeprom字样,或者24C64或者24c16字样的hex文件或者bin文件)。 此文件和第三步中的封卡文件决定了卡片的功能,比如门禁、身份识别、软件加密或者其他用途,这些就不是本站能提供的了
JDM写卡器换成PHOENIX,同样的方法连接硬件,在ICPROG软件的右上角的下拉菜单上选24C64(84卡选择24C16)
保证第一、2中的的关键设置4和5没有变化的情况下,调入HEX文件,如下图,调入文件之后就可以点击上面的command菜单的program项写卡内的24C64或者84卡内的24c16的文件。

 

在写过正确的LOADER文件后,写84卡内24C16的文件可以用ICPROG,同样也可以用下面的winphoenix软件(此软件只能用于84卡,877卡可能不好用)

1.打开WINPHOENIX软件(点此下载),汉化版本(点此下载)出现如下左界面,点File下的load..子项

2.找到24C16的文件(一般有eeprom字样,或者24c16字样的hex文件或者bin文件)后打开到WINPHOENIX

3.点Card菜单下的擦除、写、读、检验可以分别实现操作,每次都应有1-100%的进度提示知道成功。

 

如果出现下面错误一般如下,见图

三、写封卡文件
  封卡文件是卡片的程序文件,因为是最后一步写,所以叫也封卡文件。
  方法同第一步,只是调入的文件是卡片的工作文件,一般有PIC或者877 876 84字样,或者是卡片功能的字样,比如VIA,NGR,SIM之类的。此文件写入卡片之后,将会替代(覆盖)第一步所写的loader文件。
  封卡文件是卡片的CPU程序文件(工作文件),第二步里的877卡内的24C64或者84卡内的24c16的文件是CPU工作需要调入的数据文件,这两个文件决定了卡片的功能,比如门禁、点播、加密甚至发烧友用的卫视、SIM卡EMU等,需要使用者自己编制(需要很高很高的高手了)或者从别的烧友处获得,本网站不会有这些文件。loader文件文件只起写卡内的24C64或者84卡内的24c16的文件的过桥作用,在第三步之后将封卡文件被覆盖。

四、故障查找
1.用JDM写到FLASH的过程如果出错,可以从以下几个方面着手,当然首次写卡先保证您的电脑是否windows98台式机.
a硬件故障,首先要排除的
--检查com口是否选对,选对后写卡过程中灯会闪亮
--检查串口线是否引接正确,建议用市面上的成品延长线,1对1的那种
--检查写卡器是否有邮寄过程中的损坏,如有一般肉眼能看出元件断裂
b软件故障
--检查软件设置是否按照本教程,本教程没有提及的地方不要随便动,除非你知道含义,万一调乱可以在ICPROG的settings--clear settings处恢复,恢复后重新启动ICPROG
--智能卡一般都有加密写卡功能,以用于保护知识产权,这样一般校验不会成功了。你可以按本教程将CP选项清除。
--无论任何硬件或者软件故障,写卡的最终结果都表现在可能是0000H校验错误,所以从次现象没法判断错误点,只能按照此程序排除软硬件问题。
2.用PHOENXI写卡内24C16等外部存储器件如果出错,可以从以下几个方面着手
a硬件故障和1的一样,仔细检查。
b软件故障
--由于PHOENIX写卡内24C16等需要事先用JDM写好并校验成功了LOADER文件,这一步必须保证无误,而且loader文件必须保证是自己 需要用到的,loader文件是为写24CXX服务的文件,和写24CXX的软件也有关,比如winphoenix和ICPROG,还有 BTPICPROG,都可以写84卡,但是它们用的loader文件就不一定一样。LOADER文件可以直接到本站下载。
PHOENIX上的晶体频率一般有3.58或者6M两种,写84卡的winphoenix一般要用3.58的频率,但可能其他一些软件的频率是可调的。要点是软硬件的频率要一致。
--ICPROG写24CXX经常出现的错误是Programming not Supported或者 Resetting card failed。可能的情况:
a.首次的loader文件没有写好(找对文件,重新写)
b.写卡器故障(phoenxi的频率和ICPROG-SETTINGS-OPTIONS-SMARTCARD下的频率是否一致)
c.软件故障(重新下载软件或者软件的其他版本,重新启动计算机等)

五、关于0000H错误
ICPROG软件写877卡或者84卡最常见的错误是0000H处校验错误,经常有人问这个错误是怎么回事。其实写卡过程中无论是硬件(如卡片、编程器、 电脑串口)还是软件(如windows系统、ICPROG等)甚至有人自己做的线线序不对产生的错误最常见都是这个。所以不能一概而论。这个错误的意思是 软件在0000H地址(也就是卡片CPU的起始位置读出来的数据和事先写入的不同,也就是校验失败

很多初烧初次写卡就给我打电话咨询:“写卡错误,怎么回事?”,连起码的什么硬件?什么软件?如何操作?什么错误提示?都不提供,显然也不可能有答案。 参考一下下面的内容:
1、什么版本软件,最好将你下载的软件的连接告知
2、什么硬件,单个的PHOENIX,还是合1的
3、如何连的,232线是否正常
4、如何确认COM口正常,是否能确定自己的COM口
5、读写卡过程中写卡器上灯有什么反映?
6、使用PHOENIX功能时频率一定要和软件上保持一致
7、出于简单方便考虑,渔歌的单个phoenix以前是串口直接取电,确认可以用于写877 84卡,或者读取SIM卡的电话薄及短信信息。
8、2合1和3合1的需要接USB取电,证实可以用于读红卡,读取的过程中红灯会变绿,另外一个绿灯会闪烁。读取完毕变绿的红灯会恢复变红。
9、大家不是都有SIM卡吗?通过读它的短信或者电话本内容来验证我们使用的PHOENIX功能是否正常不失是一个好办法。
10、死马当活马,软件重新下载,电脑重新启动。


六、经验
1.JDM写卡的时候,如果不行,可以先将卡片删除后再写。
2.ICPROG的有些提示不一定准确,比如它基本不判断卡片是否存在,不放卡片的时候会也可以读卡、写卡。
3.phoenix如果怀疑它有硬件故障,可以先用它读读普通SIM卡的信息,如能读取一般没有大的问题,排除硬件错误会对你查找故障有利。
4.千万不能在JDM写卡的时候,见0000H错误就大惊小怪,我说过任何错误都是这个结果。
5.自己做连接线的,一定要搞清楚是1对1的线,搞错了会坏硬件和电脑的,不鼓励自己做线,如果实在买不到线,可以先直接将写卡器插到电脑。
6.如果实在不成功,找别的写卡软件试试,写卡的软件应该还是有那么5种常用的,只要它要求的写卡器类型和你的一样。
7.卡片在读写过程中都不要动硬件,以防损坏卡片。卡片可以正常读写万次,但非正常操作就完了,比如220V高压线头落写卡器上,哈哈我想你不会这么大意的。
8.软件可以重新下载安装。
9.判断某一硬件坏的准确方法一般需要有一好的同时存在,初烧一般只有一份东西,所以初次写卡如果失败,最好不要随便怀疑哪个东西有问题,而要从方法上下手,多试是最好的方法
10.第一次运行这个软件,会弹出一个窗口,对于NT内核的操作系统(2000、XP)你需要把它设置为windows API(否则会出错), 对于98内核,则设置为Direct I/O,延迟量可以不管,但如果读写不稳定,需要增加延迟量。再选择你使用的COM端口,这一步是必需的。以后要改变这些初始设置,需要在软件菜单中有一项“初始化”,也可调出这个窗口。
11.进入软件后,就可以应用了,软件界面简单,主要有从芯片读出、擦除、编程等。首先选择你的芯片类型,再将你的文件打开,读入缓冲区,就可以编程了。 在编程之前你也可以对芯片进行芯片擦除(这一步不是必须的,在软件在对芯片进行编程之间,有一个擦除动作)。完成后,软件会自动校验,(也就是将已经编入 芯片的数据读出后与缓冲区的数据进行比较),如果校验通过,会得到“programe success!”提示。
12.软件中还有一些高级设置,有些还是很有用的,像快捷键、校验方式等。所以看一下helpfile是很有用的。

参见:
2合1自动编程器写84卡教程

手把手教你写一张PIC卡(877卡、84卡)
手把手教你写一张8515卡
写8515卡funmagic软件教程

相关文章推荐

手把手教你使用PIC单片机驱动继电器

转之http://www.hificat.com/pic/dpj_step/jdq.asp 在现代自动控制设备中,都存在一个电子电路(弱电)与电气电路(强电)的互相连接问题,一方面要使电子电路的控制...

PIC16F877 IO模拟UART及读写24C01工程

  • 2012年08月30日 18:04
  • 115KB
  • 下载

手把手教你制作一张哆啦A梦的壁纸

可爱的壁纸总是会受到大家的喜欢,那么如何制作一个简单的壁纸呢?跟着源码时代UI老师一起动起来吧!...

【手把手教你Ubuntu】Ubuntu 13.04 Linux 3D桌面完全教程,显卡驱动安装方法

[2013年4月28日更新] Ubuntu Linux 3D桌面完全教程,显卡驱动安装方法,compiz特效介绍,常见问题解答。 本教程最早是一善鱼 YQ-YSY 于2008年编写并发布在Ubunt...

PIC16F877A应用笔记

开发板型号:给力者 GL7 http://pan.baidu.com/s/1sjQ8jU1 一、  点亮LED #include //调用PIC16F87XA单片机的头文件   //根据选...

PIC16F877A最小功能板 - 原理图系列

一、顶层                          主要由端口转换、MCU、复位、键盘、晶振和显示等5部分电路组成。        二、模块层      ...

UAMC板卡Acc-84E

  • 2017年03月31日 21:49
  • 4.04MB
  • 下载

PIC单片机(PIC16F877A)外部中断程序

正常运行为流水灯,发生中断则灯全亮。 #include __CONFIG(0x3B31); //4M #define uchar unsigned char #define uint unsi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:手把手教你写一张PIC卡(877卡、84卡)
举报原因:
原因补充:

(最多只允许输入30个字)