د بهرني ځان کوډ کولو ډرایو بیرته راګرځول او هیک کول زما پخوانی شوق دی. په تیرو کې، ما فرصت درلود چې د داسې ماډلونو سره تمرین وکړم لکه Zalman VE-400، Zalman ZM-SHE500، Zalman ZM-VE500. په دې وروستیو کې، یو همکار ماته یو بل نندارتون راوړی: پیټریټ (آیګو) SK8671، کوم چې د یو عادي ډیزاین سره سم جوړ شوی - د LCD شاخص او د PIN کوډ داخلولو لپاره کیبورډ. دا هغه څه دي چې له دې څخه راوتلي ...
1. پیژندنه
کور
بسته بندي
په ډیسک کې زیرمه شوي معلوماتو ته لاسرسی ، کوم چې ګمان کیږي کوډ شوی وي ، د PIN کوډ داخلولو وروسته ترسره کیږي. په دې وسیله یو څو ابتدايي یادښتونه:
- د PIN کوډ بدلولو لپاره، تاسو باید د خلاصولو دمخه F1 فشار ورکړئ؛
- د PIN کوډ باید له 6 څخه تر 9 عددونو پورې وي؛
- د 15 غلطو هڅو وروسته، ډیسک پاک شوی.
2. د هارډویر جوړښت
لومړی، موږ وسیله په برخو ویشو ترڅو پوه شو چې کوم برخې لري. ترټولو سخت کار د قضیې خلاصول دي: ډیری مایکروسکوپیک پیچونه او پلاستيک. د قضیې په خلاصیدو سره ، موږ لاندې ګورو (پنځه پن نښلونکي ته پام وکړئ چې ما پلورلی دی):
2.1. اصلي تخته
اصلي تخته خورا ساده ده:
د دې خورا د پام وړ برخې (د پورتنۍ څخه ښکته وګورئ):
- د LCD شاخص لپاره نښلونکی (CN1)؛
- ټویټر (SP1)؛
- Pm25LD010 (
مشخصات د SPI فلش ډرایو (U2)؛ - Jmicron JMS539 کنټرولر (
مشخصات ) د USB-SATA (U1) لپاره؛ - د USB 3 نښلونکی (J1).
د SPI فلش ډرایو د JMS539 او ځینې ترتیباتو لپاره فرم ویئر ذخیره کوي.
2.2. د LCD شاخص تخته
په LCD بورډ کې د پام وړ هیڅ شی نشته.
یوازې:
- د نامعلوم اصل LCD شاخص (شاید د چینایي فونټ سیټ سره)؛ د ترتیبي کنټرول سره؛
- د کیبورډ بورډ لپاره ربن نښلونکی.
2.3. د کیبورډ تخته
کله چې د کیبورډ بورډ معاینه کوئ، شیان یو ډیر په زړه پورې بدلیږي.
دلته ، په شا اړخ کې ، موږ د ربن نښلونکی ګورو ، په بیله بیا د Cypress CY8C21434 مایکرو کنټرولر PSoC 1 (له دې وروسته به موږ په ساده ډول ورته PSoC وایو)
CY8C21434 د M8C لارښوونې سیټ کاروي (وګورئ
2.4. تارونو ته کتل
راځئ چې معلومه کړو چې دلته څه تړاو لري. د دې کولو لپاره، یوازې د ملټي میټر سره تارونه ازموینه وکړئ:
د دې ډیاګرام لپاره توضیحات چې په زنګون کې ایښودل شوي:
- PSoC په تخنیکي توضیحاتو کې تشریح شوی؛
- راتلونکی نښلونکی، ښي خوا ته، د ISSP انٹرفیس دی، کوم چې د برخلیک په خوښه، په انټرنیټ کې د دې په اړه لیکل شوي سره مطابقت لري؛
- ښي خوا ته نښلونکی د کیبورډ بورډ ته د ربن نښلونکي ټرمینل دی؛
- تور مستطیل د CN1 نښلونکي انځور دی، د LCD بورډ سره د اصلي بورډ سره نښلولو لپاره ډیزاین شوی. P11، P13 او P4 په LCD بورډ کې د PSoC پنونو 11، 13 او 4 سره وصل دي.
3. د برید د ګامونو ترتیب
اوس چې موږ پوهیږو چې دا ډرایو له کومو برخو څخه جوړ دی، موږ اړتیا لرو: 1) ډاډ ترلاسه کړو چې د اصلي کوډ کولو فعالیت واقعیا شتون لري؛ 2) ومومئ چې څنګه د کوډ کولو کیلي رامینځته کیږي / خوندي کیږي؛ 3) ومومئ چیرې چې دقیقا د PIN کوډ چک کیږي.
د دې کولو لپاره ما لاندې ګامونه ترسره کړل:
- د SPI فلش ډرایو څخه د ډیټا ډمپ اخیستل؛
- هڅه وکړه چې د PSoC فلش ډرایو څخه ډاټا ډمپ کړي؛
- تایید شوی چې د Cypress PSoC او JMS539 ترمنځ اړیکه په حقیقت کې فشار شوي کیلي لري؛
- ما ډاډ ترلاسه کړ چې کله چې پاسورډ بدل کړئ، د SPI فلش ډرایو کې هیڅ شی نه لیکل کیږي؛
- د JMS8051 څخه د 539 فرم ویئر بیرته راګرځولو لپاره خورا سست و.
3.1. د SPI فلش ډرایو څخه د ډیټا ډمپ اخیستل
دا کړنلاره خورا ساده ده:
- تحقیقات د فلش ډرایو پښو سره وصل کړئ: CLK، MOSI، MISO او (اختیاري) EN؛
- د منطق شنونکي په کارولو سره د سنیففر سره "sniff" اړیکې (ما کارولې
Saleae Logic Pro 16 ); - د SPI پروتوکول ډیکوډ کړئ او پایلې CSV ته صادر کړئ؛
- ګټه واخلئ
decode_spi.rb د پایلو تحلیل او ډمپ ترلاسه کولو لپاره.
مهرباني وکړئ په یاد ولرئ چې دا طریقه په ځانګړې توګه د JMS539 کنټرولر په قضیه کې ښه کار کوي، ځکه چې دا کنټرولر د پیل کولو مرحله کې د فلش ډرایو څخه ټول فرم ویئر باروي.
$ decode_spi.rb boot_spi1.csv dump
0.039776 : WRITE DISABLE
0.039777 : JEDEC READ ID
0.039784 : ID 0x7f 0x9d 0x21
---------------------
0.039788 : READ @ 0x0
0x12,0x42,0x00,0xd3,0x22,0x00,
[...]
$ ls --size --block-size=1 dump
49152 dump
$ sha1sum dump
3d9db0dde7b4aadd2b7705a46b5d04e1a1f3b125 dump
د SPI فلش ډرایو څخه ډمپ اخیستو سره ، زه دې پایلې ته ورسیدم چې د دې یوازینۍ دنده د JMicron کنټرول وسیلې لپاره د فرم ویئر ذخیره کول دي ، کوم چې په 8051 مایکرو کنټرولر کې جوړ شوی. له بده مرغه، د SPI فلش ډرایو ډمپ اخیستل بې ګټې وګرځیدل:
- کله چې د PIN کوډ بدل شي، د فلش ډرایو ډمپ ورته پاتې کیږي؛
- د پیل کولو مرحلې وروسته ، وسیله د SPI فلش ډرایو ته لاسرسی نلري.
3.2. د مخابراتو بوی کول
دا د موندلو یوه لاره ده چې کوم چپ د ګټو وخت / مینځپانګې لپاره د مخابراتو چک کولو لپاره مسؤل دی. لکه څنګه چې موږ دمخه پوهیږو ، د USB-SATA کنټرولر د Cypress PSoC LCD سره د نښلونکي CN1 او دوه ربنونو له لارې وصل دی. له همدې امله، موږ تحقیقات د دریو ورته پښو سره وصل کوو:
- P4، عمومي داخل / محصول؛
- P11, I2C SCL;
- P13، I2C SDA.
بیا موږ د Saleae منطق شنونکی پیل کوو او په کیبورډ کې دننه کیږو: "123456~". د پایلې په توګه، موږ لاندې انځور ګورو.
پدې کې موږ کولی شو د ډیټا تبادلې درې چینلونه وګورو:
- په چینل P4 کې ډیری لنډې چاودنې شتون لري؛
- په P11 او P13 کې - نږدې دوامداره ډیټا تبادله.
په چینل P4 کې په لومړي سپیک کې زوم کول (په تیرو عکس کې نیلي مستطیل) ، موږ لاندې ګورو:
دلته تاسو لیدلی شئ چې په P4 کې نږدې 70ms یو یوازینۍ سیګنال شتون لري ، کوم چې په لومړي سر کې ما ته داسې بریښي چې د ساعت سیګنال رول لوبوي. په هرصورت، زما د اټکل په چک کولو کې د یو څه وخت لګولو وروسته، ما وموندله چې دا د ساعت سیګنال نه دی، مګر یو آډیو جریان چې ټویټر ته تولید کیږي کله چې کیلي فشاروي. له همدې امله، د سیګنال دا برخه پخپله زموږ لپاره ګټور معلومات نلري. په هرصورت، دا د شاخص په توګه کارول کیدی شي ترڅو پوه شي کله چې PSoC کلیدي مطبوعات راجستر کوي.
په هرصورت، وروستی P4 آډیو جریان یو څه توپیر لري: دا د "ناقص PIN" لپاره آډیو ده!
د کیسټروک ګراف ته بیرته راستنیدل ، په وروستي آډیو سټریم ګراف کې زوم کول (بیا نیلي مستطیل وګورئ) ، موږ ترلاسه کوو:
دلته موږ په P11 کې یوازینۍ سیګنالونه ګورو. نو داسې ښکاري چې دا د ساعت سیګنال دی. او P13 ډاټا دی. پام وکړئ چې د بیپ پای ته رسیدو وروسته نمونه څنګه بدلیږي. دا به په زړه پورې وي چې وګورئ دلته څه پیښیږي.
پروتوکولونه چې د دوه تارونو سره کار کوي معمولا SPI یا I2C دي ، او د سایپرس تخنیکي توضیحات وايي چې دا پنونه د I2C سره مطابقت لري ، کوم چې موږ ګورو زموږ په قضیه کې ریښتیا ده:
د USB-SATA چپسیټ په دوامداره توګه د کیلي حالت لوستلو لپاره PSoC رایه ورکوي ، کوم چې په ډیفالټ ډول "0" دی. بیا، کله چې تاسو "1" کیلي فشار ورکړئ، دا په "1" بدلیږي. وروستی لیږد سمدلاسه د "~" فشارولو وروسته توپیر لري که چیرې غلط PIN کوډ داخل شوی وي. په هرصورت، دا مهال ما نه دی لیدلی چې واقعیا هلته څه لیږدول کیږي. مګر زه شکمن یم چې دا امکان نلري چې د کوډ کولو کیلي وي. په هرصورت، راتلونکی برخه وګورئ ترڅو پوه شئ چې څنګه ما د PSoC داخلي فرم ویئر لرې کړ.
سرچینه: www.habr.com