Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
diplom kz Микроконтроллер құрылғыларының.docx
Скачиваний:
57
Добавлен:
17.02.2016
Размер:
5.05 Mб
Скачать

Int value, // 16- битті мәліметтер

};

Әдетте құрылымға бағттауыш арқылы сілтейді, бірақ дәл сол мәліметтерді 16 разрядты сөздердің массивіне салуға болады (int бүтін типті мәліметтері С тілінде) және индекс арқылы оған сілтеуге болады. Мәліметтер массивінде керек элемментті таңдау үшін, массивтің бастапқы элементінің адресін беретін индекстің мәніне, таңдалатын элементтің позициясын көрсететін жылжытужы қосу керек.

Ол практикада былай іске асады. Егер мәліметтер облысынан белгілі бір шаманы таңдау керек болса, бағттауыштты қолданғнада программалық код келесідей болады

struct instruct * Ptr, // бағыттауыштан құрылымды анықтау

I = Ptr -> value, // ағымдағы элементтен «value» ні оқу

Массивті ұйымдастыру кезінде бұл процедура келесідей болады

struct instruct Array[100], // массив құрылымын анықтау

i == Array[ Index ] value,

Бұл код бағыттауыштың кодынан кішкене қиынырақ, бірақ онда бір артықшылығы бар оның артынан үнемі қарап жүру керек, керек құрылымның элементімен дұрыс әрекеттесетін онда бағыттауыш пайдаланылмайды.

Басқа қарастыруға тиісті мәліметтер құрылымы- ол кесте. Кестені бірөлшемді өзгермейтін мәліметтер жолы бар массив ретінде елестетуге болады. Әдетте бұл жүйенің күйі туралы ақпарат немесе пайдаланушыға арналған мәлімет хат. С тілінде ол келесідей бейнеленеді

char Greeting [13] = “Hello there I”,

Тілдің компиляторы бұл кестелерді программа жадысына (ROM) орналастыруы керек, себебі оперативті жадыны RAM бос сақтау керек, оны қолдану кезінде оған массив элементтерін орнатуға және олардың инициализациясын жүргізуге тура келетін еді. Кестедегі ақпарат массив ретінде таңдалады, RAM нан оқылатын массивтерге ұқсас.

Микроконтроллерлерде программалық код аппаратты регистрлерге қол жеткізуі оңай болуы керек. Әдетте ол екі түрлі әдіспен жасалады. Біріншісі – программаның денесіне ассемблер инструкцияларын орнатуға рұқсат беру, ол жоғарғы деңгейлі тілде жазылған. Екіншісі – қолданушыға мәліметтердің адресті кеңістігінде орнын анықтауға мүмкіндік береді, ол регистрлерге хабарласу үшін керек. Екі әдіс те жұмыс станцияларына және персональді компьютерлерде қабылданған стандартты тілден аутқиды. Бірақ бұл әдістер әдетте жоғарғы деңгейлі тілдер қолдайды, олар микроконтроллерді программалау үшін қолданылады.

Талқылауға тиісті ең соңғысы ол симулятор мен эмуляторға символикалық ақпараттың берілуі. Символикалық ақпарат – ол қолданылатын жолға, белгілерге, айнымалыларға сілетмелер және олардың жадыдағы орналасуы. Бұл ақпарат симуляторлар мен эмуляторларлармен қолданылады, ол бастапқы программалық орындалуын көрсету үшін керек. Солайша түзету ассемблер деңгейінде емес бастапқы мәтіннің деңгейінде жүреді.

Барлық компиляторлар бірдей символикалық ақпаратты береді (немесе бере алады) деп айтуға болмайды. Келесідей жағдай тууы мүмкін, симулятормен қолданылатын керек символикалық ақпаратты беретін, таңдалған тілге компилятордың дұрыс нұсқасын таппауы мүмкін.

Жоғарғы деңгейлі тілдердің бірқатар ерекшеліктері бар, оларды микроконтроллерді программалау үшін таңдағанда ескеру керек. Осы жерде келтірілген коментариилер прграммалық қамтамасыз етуге және микроконтроллердің жұмыс істеу ерекшеліктерімен байланысты. Осы ерекшеліктерді ескеру компилятордың ең пайдалысысын таңдауға көмектеседі.

Тағы да бір сұрақ қалды: ол не үшін дәл осы жоғарғ деңгейлі тілді қолдану керек ? Оның бірнеше себебі бар.

Бірінші – қодтың тасымалдануы. Жоғарғы деңгейлі тілді қолдағанда көптеген дайын программалар мен алгоритмдер бар, оларды жасалып жатқан қолданбалы программаға тікелей қоюға болады. Осы түрдің басқа микроконтроллерлеріне немесе микроконтроллердің басқа түрлеріне программаны тасымалдау қажеттілігі тууы мүмкін. Жоғарғы деңгейлі тілдерді қолданғанда мұндай тасымалдану оңайырақ жүргізіледі.

Жоғарғы деңгейлі тілде қосымшаларды құрастырудың тағы бір себебі – ол ассемблермен программалау кезіндегі оған тән шектеулердің жоқ болуы. Сонымен қатар пайдаланушы әртүрлі қосымша мүмкіндіктерді алады, мысалы, программаға қиын операциялардың кодын автоматты енгізу немесе синтаксистік қателердің тиімді бақылауын жүргізу. Айта кету керек, қиын операциялардың программалық жүзеге асуы жоғарғы деңгейлі тілден компилятор арқылы алынған кодқа қарағанда ассемблер тіліндег программалау үлкен көлемділігіне және қиындғына байланысты пайдалылығы аз программалық кодқа әкелуі мүмкін.

Жоғарғы деңгейлі тілді қолдануды соңғы және мүмкін ең маңызды себебі ол – қосымшаны қолдау қажеттілігі. Көп жағдайда жазылған кодты бірнеше ай немесе жыдың өтісінен кейін түзету немесе модификациялау керек. Жоғарғы деңгейлі тілде программаны құрастыру кезінде бұл мәселе едәуір жеңілдей түседі.

Қосымшаларды әзірлеу

Жобаланып жатқан қосымшаға микроконтроллерді дұрыс таңдау үшін әртүрлі жағдайларды қарастыру керек. Айта кету керек, микроконтроллерді таңдаған кезде олардың көптеген түрлерін қарастырып қана қоймай ол түрдің ішінде белгілі бір типін таңдау керек. Негізінде бір түрдің көптеген микроконтроллерлері көптеген құрылғылардың номенклатурасын сақтайды, және олар параметрлер мен сипаттамалардың кең диапазоны бар. Белгілі бір микроконтроллерді таңдау үшін төмендегі анкетаға ұқсас анкетаны толтыру керек.

ҚОСЫМШАНЫҢ АТАУЫ:

Енгізу жолының саны:

Шығару жолының саны:

Енгізу/шығару жолының саны:

Іске қосылудың (лақтыру) типі:

Синхронизация типі (талап етілетін дәлдік) :

Күзет таймерінің қажеттілігі:

Программа жадысын қорғау:

Қоректенудің қол жетімді түрі:

Асинхронді тізбектелген енгізу-шығарудың қажеттілігі:

Синхронды тізбектелген енгізу-шығарудың қажеттілігі:

Кестенің талап етілетін өлшемі:

ШИМ-сигналдарының енгізу-шығарудың қажеттілігі:

Аналогты енгізу/шығарудың талап етілетін типі:

Сериялық шығаруды ұйымдастырғандағы бір рет программалау (ОТР)қажеттілігі:

Артықшылығы бар корпустың түрі:

Қолданылатын программалау тілі:

Қанағаттанарлық баға:

Осындай анкета қолда барда әртүрлі микрокнтролерлердің сипттамаларын қарастыруға болады, ол сәйкес келетін құрылғыны табу үшін керек. Мүмкін, қосымшаның спецификациясын өзгертуге тура келеді, ол таңдалған микроконтроллердің мүмкіндіктеріне сәйкес келетіндей болғаны дұрыс.

Микроконтроллердің талап етілетін сипаттамаларының тізімін нақты құралдардың мүмкіндіктерімен салыстырғанда, қажетті нәтижеге әр түрлі жолдармен қол жеткізуге болатындығын есте сақтау керек. Мысалы, асинхронді тізбектелген енгізу-шығаруды, үзілулерді қолдана отырып микроконтроллердің белгілі бір шығуында сигналдың тікелей оқылу-жазылуын іске асыруы арқылы қол жеткізуге болады. Сонымен бірге UART типті тізбектелген интерфейс орнатылған микроконтроллерді қолдану керек емес, ол шығарылатын өнімнің және жасалуының бағасын төмендете алады.

Команда жадысының талап етілетін көлемін анықтауда қиындық тууы мүмкін, әсіресе егер қолданбалы программаларды жазу кезінде жоғарғы деңгейлі тілдердің қоданылуы жобаланса. Әрқашан жадының көлеміне үміт арту керек, ал егер жады көлемі аз микроконтроллерді қолдану мүмкін болса, онда жасалып жатқан қосымшаның спецификациясына сәйкес өзгертулерді енгізу керек.

Программалаудың белгілі бір әдістерін кейбір сәулеттерде іске асыру қиын немесе мүмкін емес екенін есте сақтау керек. Бірақ таңдалатын сәулеттерді және микрокнтроллер сипаттамаларын талқылаған кезде таныс құрылғыларды қолдануды ұсынамыз, және бірегей бір нәрсені табудың керегі жоқ. Егер дұрыс микроконтроллер табылса онда таңдауды жасап жұмысқа кірісе беруге болады.