Кіріспе

Кіріктірілген жүйелерді бағдарламалау әдісі

Жүйелік бағдарламалау (ISP), сондай-ақ схема ішіндегі тізбекті бағдарламалау (ICSP) деп те аталады, – кейбір бағдарламаланатын логикалық құрылғылардың, микробасқарушылардың, чипсеттердің және басқа да кіріктірілген құрылғылардың толық жүйеге орнатылған күйінде бағдарламалану қабілеті. Бұл, чипті жүйеге орнату алдында бағдарламалау қажеттілігін жолайды. Сонымен қатар, бұл микробасқарушылар мен олармен байланысты процессорлардың чиптегі жадысына арнайы бағдарламалау тізбектерін қажет етпей, микрофирмалық бағдарламаны жаңартуға мүмкіндік береді және жобалау жұмысын жеңілдетеді.

Шолу

Микробақылаушы құрылғыларды бағдарламалау үшін жүйе ішіндегі бағдарламалау протоколдарына арналған стандарт жоқ. Микробақылаушыларды өндірушілердің көбісі осы мүмкіндікті қолдайды, бірақ әрқайсысы өз протоколын енгізген, тіпті бір өндірушінің әртүрлі құрылғылары үшін де олар жиі өзгеше болады. Жалпы, қазіргі заманғы протоколдар пайдаланылатын қосылымдар санын азайтуға тырысады, әдетте 2 қосылымға дейін. Кейбір ISP интерфейстері бір ғана қосылыммен де осы нәтижеге жетеді, ал басқалары JTAG интерфейсін іске асыру үшін 4 қосылымға дейін пайдаланады. Жүйе ішіндегі бағдарламалаудың басты артықшылығы – электрондық құрылғыларды өндірушілерге бағдарламалау мен сынақты бір өндіріс кезеңіне біріктіруге және жүйені құрастыру алдында жеке бағдарламалау кезегін қажет етудің орнына ақша үнемдеуге мүмкіндік беруі. Бұл өндірушілерге алдын ала бағдарламаланған микросхемаларды өндірушіден немесе дистрибьютордан сатып алудың орнына, өздерінің өндіріс желісінде микросхемаларды бағдарламалауға мүмкіндік береді, соның арқасында өндіріс барысында кодты немесе дизайнды өзгертуге болады. Тағы бір артықшылығы – өндіріс әрқашан ең соңғы бағдарламалық құралды пайдалана алады, ал жаңа мүмкіндіктер мен қателерді түзетулер кідіріссіз енгізіліп, өндіріске жіберіледі, бұл алдын ала бағдарламаланған микробақылаушыларды қолданғанда болатын кешігуді болдырмайды. Микробақылаушылар әдетте тікелей басылған схемалық тақтаға қосылады және көбінесе басқа компьютерге үлкен сыртқы бағдарламалау кабелі үшін қажетті схемалары немесе орын жоқ. Әдетте, ISP-ні қолдайтын микросхемаларда жүйедегі қалыпты қуат көзінен қажетті бағдарламалау кернеуін жасауға арналған ішкі схемалар болады және бағдарламалаушымен тізбектік протокол арқылы байланысады. Көптеген бағдарламаланатын логикалық құрылғылар автоматтандырылған сынақ процедураларымен оңай интеграция үшін ISP үшін JTAG протоколының түрін пайдаланады. Басқа құрылғылар көбінесе өнімдік протоколдарды немесе ескі стандарттармен анықталған протоколдарды қолданады. Егер жүйе жеткілікті күрделі болса және орташа көлемдегі қосымша логика қажет болса, жобалаушылар JTAG емес құрылғылар үшін, мысалы, флэш-жад пен микробақылаушылар үшін JTAG басқарылатын бағдарламалау кіші жүйесін іске асыруы мүмкін, бұл бүкіл бағдарламалау және сынақ процедурасын бір протоколдың бақылауымен орындауға мүмкіндік береді.

Тарих

1990 жылдардың басында микробасқарушылар архитектурасында маңызды технологиялық эволюция орын алды. Алғашқыда олар екі түрлі шешіммен іске асырылды: OTP (бір рет бағдарламаланатын) немесе EPROM жадымен. Бұл технологияларда жадты өшіру үшін чиптің корпусының үстіндегі арнайы терезе арқылы ультракүлгін сәулеге ұшырату қажет болатын. 1993 жылы Microchip Technology EEPROM жады бар алғашқы микробасқарушыны – PIC16C84 ұсынды. EEPROM жады электрлік түрде өшіріле алады. Бұл мүмкіндік корпустың үстіндегі өшіру терезесін жою арқылы өндіріс шығындарын төмендетуге және жүйе ішінде бағдарламалау технологиясын енгізуге мүмкіндік берді. ISP (In-System Programming) арқылы бағдарламалау процесін өндіріс процесінің соңында тікелей тақтада орындауға болады. Бұл эволюция бағдарламалау және функционалдық сынақ кезеңдерін біріктіруге, өндірістік ортада жұмыс істеуге және микробағдарлама әлі дамырылмаған жағдайда да тақталардың алдын ала өндірісін бастауға мүмкіндік берді. Осылайша, қателерді түзетуге немесе кейіннен өзгерістер енгізуге болады. Сол жылы Atmel флэш-жады бар алғашқы микробасқарушыны жасады, оны бағдарламалау оңай және жылдам, ал қызмет ету мерзімі EEPROM жадымен салыстырғанда әлдеқайда ұзақ. ISP-ні қолдайтын микробасқарушылар әдетте, бағдарламалаушымен байланыс үшін қолданылатын тізбектік байланыс интерфейсіне арналған контактілермен, флэш/EEPROM жадымен және микробасқарушыны бағдарламалау үшін қажетті кернеуді қамтамасыз ететін схемамен жабдықталған. Тізбектік байланыс интерфейсі өз кезегінде флэш немесе EEPROM жадымен жұмыс істеу үшін командаларды беретін бағдарламалау интерфейсіне қосылады. ISP бағдарламалау үшін электрондық тақталарды жобалау кезінде бағдарламалау кезеңінің сенімді болуын қамтамасыз ету үшін бірнеше нұсқауларды ескеру қажет. Аз контактілері бар кейбір микробасқарушылар I/O (кіріс/шығыс) желілерімен бағдарламалау желілерін бөліседі. Егер тақтаның жобасында қажетті сақтық шаралары ескерілмесе, бұл мәселе туындауы мүмкін; құрылғы бағдарламалау кезінде I/O компоненттерінің зақымдануына ұшырауы мүмкін. Сонымен қатар, бағдарламалаушыдан компоненттерге зақым келтірмеу үшін және микробасқарушы желіге жеткілікті ток бере алмағандықтан ISP желілерін жоғары кедергілі схемаларға қосу маңызды. Көптеген микробасқарушыларға бағдарламалау режиміне кіру үшін арнайы RESET (қайта орнату) желісі қажет. Желіні басқару үшін берілетін токқа назар аудару қажет, сондай-ақ RESET желісіне қосылған және қарама-қарсы қайта орнатуды тудыра алатын күзетші таймердің (watchdog) болуын тексеру қажет, бұл бағдарламалау сәтсіздігіне әкелуі мүмкін. Сонымен қатар, кейбір микробасқарушыларға бағдарламалау режиміне кіру үшін жоғары кернеу қажет, сондықтан бұл мәннің әлсіремегенін және басқа компоненттерге берілмегенін тексеру қажет.

Өнеркәсіптік қолдану

Жүйелік бағдарламалау процесі өнімнің соңғы өндіріс кезеңінде жүзеге асырылады және өндіріс көлемдеріне байланысты екі түрлі тәсілмен орындалуы мүмкін. Бірінші әдісте қосылыс бағдарламалаушыға қолмен қосылады. Бұл шешім бағдарламалау процесіне адамның қатысуын талап етеді, ол бағдарламалаушыны кабель арқылы электрондық тақтаға қосуы керек. Сондықтан бұл шешім төмен өндіріс көлемдері үшін арналған. Екінші әдіс тақтадағы сынақ нүктелерін пайдаланады. Бұл – басылған схемалық тақтада (PCB) орналасқан және тақтадағы кейбір электрондық компоненттерге электрлік түрде қосылған арнайы аймақтар. Сынақ нүктелері бортта орнатылған компоненттердің функционалдық сынақтарын жүргізу үшін қолданылады және олар микроконтроллердің тікелей шығыршындарына қосылғандықтан, ISP үшін өте тиімді. Орташа және жоғары өндіріс көлемдері үшін сынақ нүктелерін пайдалану – ең жақсы шешім, себебі ол бағдарламалау кезеңін құрастыру желісіне интеграциялауға мүмкіндік береді. Өндіріс желілерінде тақтайлар «төсек» деп аталатын негізгі тірекке орналастырылады. Бұл тіректер өндіріс көлемдеріне байланысты жартылай автоматты немесе автоматты сынау жүйелеріне (ATE – автоматты сынау жабдықтары) интеграцияланады. Тіректер әрбір тақтаға немесе ең көп дегенде сол тақтаға ұқсас бірнеше модельге арнайы жасалады – сондықтан олар интеграцияланған жүйеде алмастырылатын болады. Сынау жүйесі тақта мен тірегі орналасқаннан кейін, тіректің инелерін тақтадағы сынақ нүктелерімен байланыстыру механизміне ие болады, осы арқылы сынақ жүргізіледі. Жүйеге қосылған немесе тікелей кіріктірілген ISP бағдарламашысы болады. Ол тақтаға орнатылған құрылғыны немесе құрылғыларды бағдарламалауға тиіс, мысалы, микроконтроллерді және/немесе жадты.

Микрочип ICSP

Көптеген Microchip микроконтроллерлерінде ICSP бағдарламалау екі тіреуіш арқылы жүзеге асырылады: сағат (PGC) және дерек (PGD), ал Vpp/MCLR тіреуішінде жоғары кернеу (12 В) болады. Төмен кернеулі бағдарламалау (5 В немесе 3,3 В) жоғары кернеуді қажет етпейді, бірақ I/O тіреуішін эксклюзивті пайдалануға резервтейді. Дегенмен, жаңа микроконтроллерлер үшін, әсіресе Microchip Technology компаниясының PIC18F6XJXX/8XJXX микроконтроллерлер отбасылары үшін ICSP режимдеріне кіру әлдеқайда өзгеше. ICSP бағдарламалау/тексеру режиміне кіру үшін келесі үш қадам қажет: MCLR (мастерлік тазалау) тіреуішіне қысқа мерзімге кернеу қолданылады. PGD тіреуішіне 32 биттік кілттік тізбек жіберіледі. MCLR тіреуішіне кернеу қайтадан қолданылады. ПК-ның I/O портына бір жағынан, ал PIC-ке екінші жағынан қосылу үшін бағдарламашы деп аталатын жеке аппараттық құрал қажет. Әрбір маңызды бағдарламалау түрінің ерекшеліктерінің тізімі: Параллель порт – үлкен, көлемді кабель, көптеген компьютерлерде тек бір порт болады және бағдарламалау кабелін қосылған принтермен ауыстыру ыңғайсыз болуы мүмкін. 2010 жылдан кейінгі көптеген ноутбуктер бұл портты қолдамайды. Параллель портты бағдарламалау өте жылдам. Сериялық порт (COM порт) – бір кезде ең танымал әдіс. Сериялық порттарда көбінесе схеманы бағдарламалауға жеткілікті қуат кернеуі болмайды. 2010 жылдан кейінгі көптеген компьютерлер мен ноутбуктер бұл портты қолдамайды. Сокет (схема ішінде немесе сыртында) – процессорды схемалық платадан алып тастау керек немесе чипке қысқыш бекіту керек, бұл қол жеткізуге қиындық тудырады. USB кабельі – кішкентай және жеңіл, кернеу көзін қолдайды және көптеген компьютерлерде қосымша порттар болады. Бағдарламаланатын схема мен компьютер арасындағы қашықтық USB кабелінің ұзындығымен шектеледі – әдетте ол 180 см-ден аспауы керек. Бұл машиналардың ішіндегі немесе шкафтардағы құрылғыларды бағдарламалауды қиындатуы мүмкін. ICSP бағдарламалаушыларының көптеген артықшылықтары бар, олардың ішінде өлшемі, компьютерлік порттың қолжетімділігі және қуат көзі маңызды ерекшеліктер болып табылады. Өзара байланыс схемасының және микроконтроллерді қоршаған мақсатты схеманың әртүрлілігіне байланысты барлық мүмкін мақсатты схемалармен немесе байланыстармен жұмыс істейтін бағдарламашы жоқ. Microchip Technology толыққанды ICSP бағдарламалау нұсқаулығын ұсынады. Көптеген сайттар бағдарламалау және схема мысалдарымен бөліседі. PIC микроконтроллерлері бес сигнал арқылы бағдарламаланады (алтыншы 'aux' тіреуіші қарастырылған, бірақ пайдаланылмайды). Деректер екі сымдық синхронды сериялық схема арқылы жіберіледі, ал тағы үш сым бағдарламалау және чип қуатын қамтамасыз етеді. Сағат сигналын әрқашан бағдарламалаушы басқарады.

Сигналдар мен пин-аут

Vpp Бағдарламалау режиміндегі кернеу. Бұл кернеуді MCLR тірегіне немесе кейбір үлкен тіректері бар PIC-тердегі қосымша ICSP портының Vpp тірегіне қосу керек. PIC-ті бағдарламалау режиміне кіргізу үшін, бұл сызық PIC-тен PIC-ке өзгеретін белгілі бір диапазон ішінде болуы тиіс. 5В PIC-тер үшін бұл әрқашан Vdd-ден жоғары болады және 13,5В-қа дейін жете алады. 18FJ, 24H және 33F сериялары сияқты 3,3В PIC-тер бағдарламалау режиміне кіру үшін арнайы қолтаңбаны пайдаланады, ал Vpp – бұл жерде немесе Vdd деңгейіндегі цифрлық сигнал. Барлық PIC-тердің жарамды Vpp диапазонында болатын жалғыз Vpp кернеуі жоқ. Шындығында, кейбір PIC-тер үшін қажетті ең төменгі Vpp деңгейі басқа PIC-терге зиян келтіруі мүмкін. Vdd Бұл PIC-ке берілетін оң қуат кірісі. Кейбір бағдарламалаушылар осы қуатты схемадан алуды талап етеді (схема кем дегенде жартылай қосылған болуы керек), ал кейбіреулері осы сызықты өздері басқарып, схеманың өшірулі болуын талап етеді, ал басқаларын кез келген режимде конфигурациялауға болады (мысалы, Microchip ICD2). Embed Inc бағдарламалаушылары Vdd сызығын өздері басқарады және бағдарламалау кезінде мақсатты схеманың өшірулі болуын талап етеді. Vss PIC-ке берілетін теріс қуат кірісі және қалған сигналдар үшін нөлдік вольттік анықтама. Басқа сигналдардың кернеулері Vss-қа қатысты есептеледі. ICSPCLK Серілік деректер интерфейсінің сағаттық сызығы. Бұл сызық GND-ден Vdd-ге ауысады және оны әрқашан бағдарламалаушы басқарады. Деректер құлау жиегінде жіберіледі. ICSPDAT Серілік деректер сызығы. Серілік интерфейс екі бағытты, сондықтан бұл сызықты бағдарламалаушы немесе PIC ағымдағы операцияға байланысты басқаруы мүмкін. Қай жағдайда болса да, бұл сызық GND-ден Vdd-ге ауысады. Бiр бит PGC-нің құлау жиегінде жіберіледі. AUX/PGM Жаңа PIC контроллерлері төмен кернеулі бағдарламалауды (LVP) қосу үшін осы тіректі пайдаланады. PGM жоғары деңгейде ұсталып тұрса, микроконтроллер LVP режиміне кіреді. PIC микроконтроллерлері LVP қосылған күйде жеткізіледі, сондықтан сіз жаңа чипті пайдалансаңыз, оны LVP режимінде қолдануға болады. Режимді өзгертудің жалғыз жолы – жоғары кернеулі бағдарламалаушыны пайдалану. Егер микроконтроллерді осы тірекке қосылымсыз бағдарламаласаңыз, режим өзгермейді.

RJ11 түймешігі

Microchip ICSP бағдарламалаушысымен RJ11 ұяларын пайдаланудың өнеркәсіптік стандарты қолдалады. Суретте көрсетілгендер олардың деректер жадынамаларында келтірілген ақпараттар. Дегенмен, шатасуға орын бар. PIC деректер жадынамаларында ұя кері көрсетілген және қосқыштардың схемалық кескіні берілмеген, сондықтан 1-қосқыш ұяның қай жағында орналасқаны белгісіз. Осы жерде келтірілген сурет сынақтан өтпеген, бірақ телефон индустриясының стандартты қосқыштар схемасын пайдаланады (RJ11 плагині/ұясы бастапқыда сымды үстел телефондары үшін жасалған).