Monday, July 27, 2009

Design space exploration of a domain-specific wireless sensor networks

My research interest is in both hardware and software design challenges of wireless communication systems. In alignment with the research work that is being done at the Institute of Microelectronic Systems (MES) of TU Darmstadt, I integrated to a team of researchers who work on wireless sensor networks and reconfigurable hardware design.

Design space exploration is one of the major tasks in electronic system-level design. Same applies to the whole design process of application specific wireless sensor network design. Due to the complexity of such a system, automated development involves various levels of system abstraction. Consequently, a variety of different development tools including several different simulators are required. It was estimated that the work is best divided into four phases depending on the level of abstraction.

In the first phase, the objective is to create a sensor node library that includes a set of common components of a single sensor node. Here the lowest level of abstraction shall be dealt with, including the hardware and software platforms for a sensor node. A typical sensor node consists of smaller hardware modules such as a microcontroller (in certain case with an integrated special-purpose hardware unit), sensing and actuating modules, and a (medium/short range) radio transceiver as well as software modules such as a real-time operating system, (multihop) routing protocol, and other task-specific algorithm implementations.

The second phase involves domain-specific system modeling, the goal being the modeling of a target application environment. It is thus effectively the highest level of abstraction. Here the primary modeling methodology shall be based on an actor-oriented approach. By use of an existing actor-driven, distributed embedded system design framework a chosen specific application shall be modeled into a system model. Consequently, this system model describes the target system behaviour as a set of functions. A wildlife tracking and monitoring, which is considered as a one of the most complex wireless sensor network applications, is chosen as the target application.

The proposed domain-specific, model-based simulation approach to the design space exploration shall be prototyped in the third phase. Here, previously predefined system functions (from the second phase) shall be mapped to the sensor node platforms (from the first phase) and these mapping techniques will be evaluated. While this phase ends with the development of the prototype on the basis of homogeneous sensor nodes, the fourth phase will extend the prototype by supporting heterogeneity and reconfigurability of sensor nodes.

Monday, July 13, 2009

Электрон хэлхээг (прототип) ажилд оруулах

Микроконтроллерийн удирдлага бүхий дэд хэсэг, дууны аналог дэд хэсэг, гадны бусад төхөөрөмжтэй холбогдох интерфейсийн дэд хэсэг бүхий цахилгаан хэлхээтэй хавтанг хэрхэн ажилд бэлтгэх буюу утааны тест (smoke test) хийх талаар SZ-н хавтан дээр хийсэн ажилдаа тулгуурлан тайлбарлав.

SZ хавтан нь ойролцоогоор 40 гаран том жижиг ИС (микропроцессор, тоон сигналын процессор, санах ой, програмчлагдах логик, кодек, цуурай дарагч, аналог мултиплексор, хаяг/өгөгдлийн буфер, шугамын драйвер, хүчдэл тохируулагч), 20 гаран транзистор, 10 гаран шулуутгах болон тогтворжуулах диод, 260-д эсэргүүцэл, 200-д конденсатор, цөөн тооны ороомгоос тогтох дуудлага, холбооны гэрлэн системийн удирдлагын төхөөрөмж юм.

Энэхүү төхөөрөмжийн хавтанг ажилд бэлтгэхдээ хэлхээний хэвийн байдалд үндсэн 2 шалгалтыг хийв.

1. Механикийн шалгалт (үүнийг голчлон гагнуурын төлөвлөгөөний зураглал буюу beschtueckungsplan-ны тусламжтайгаар хийнэ)
- ИС, элементүүд хавтан дээр бүгд бүрэн гагнагдсан эсэхийг гагнуурын төлөвлөгөөтэй тулгаж, нүдээр шалгана. (зарим эсэргүүцэл, конденсатор гагнагдаагүй орхигдсон байв)
- ИС, элементүүд зөв байрласан эсэхийг гагнуурын төлөвлөгөөтэй тулгаж, нүдээр шалгана. (санах ойн ИС буруу байрласан байв)
- ИС, элементүүд бүрэн гагнагдсан эсэхийг нүдээр шалгана. (кодекийн зарим хөл гагнагдаагүй байв)

2. Цахилгааны шалгалт (үүнийг бүх схем зураглал, техникийн тодорхойлолт дээр тулгуурлан програм хэрэгсэл, хэмжүүрийн болон бусад багаж хэрэгслийн тусламжтайгаар гүйцэтгэнэ, механик шалгалт ч мөн давхар хийгдэж болно)
- ИС-н оролт гаралт, свитч түлхүүрийн байрлал зөв тохируулагдсан эсэхийг шалгана.
- Тэжээлийн шугамууд бүгд зөв холбогдсон эсэхийг програм хэрэгсэл ашиглан зарчмын схемийг байрлал холболтын схемтэй тулгах замаар шалгана. (+24, +5, +3, +2, -5, +22-н бүх шугамуудыг PCB файл дээр нь мөрдөж шалгасан)
- Хэрэв хэлхээ дотроо тэжээлийн дэд хэсэгтэй бол түүний ерөнхий хүчдэлтэй ойролцоо хүчдэл бүхий үүсгүүрийг тэжээлийн дэд хэсэгт гаднаас холбож, хэлхээний гүйдлийн хэмжээг шалгана. Шаардлагатай тохиолдолд тэжээлийн дэд хэсгийн элементийг бүхлээр нь болон хэсэгчлэн хэлхээнээс салгаж, тусгаарлаж байгаад шалгана. (тэжээлийн дэд хэсэг дэх гаралтын хэлхээний ороомгийг салгах замаар тэжээлийн дэд хэсгийг хэлхээнээс тусгаарлаж, +5-н шугамд гаднаас тэжээл өгсөн. +5 өгөхөд гүйдэл 3А-с дээш байсан нь хэлхээ алдаатай, эсвэл согогтой гэдгийг харуулж байв)
- Хэлхээний тэжээлийн шугам бүрийг нэг бүрчлэн тусад нь шалгана. (+5, +3, +2, -5, +22-н шугамыг шалгасан. +5, +3-н шугамнаас тэжээл авдаг элемент, хэсгүүдэд алдаа байсныг олсон)
- Гадны тэжээлд холбоход хэлхээнийн гүйдэл хэт өндөр байх (+3A-с дээш байв), эсвэл өөр ямар нэгэн сэжиг илэрсэн үед эхлээд зарчмын схем зураглал дээрх ИС-н тэмдэг тэмдэглэгээ техникийн өгөгдөл, тодорхойлолттойгоо (datasheet) таарч байгаа эсэхийг шалгана. (кодекийн 3 хөлний тэмдэглэгээ тодорхойлолтоос зөрж байсныг илрүүлсэн)
- Мөн сэжигтэй тохиолдолд заавал хийх шалгалт нь зарчмын схем зураглал нь байрлал холболтын схем зураглалтай (layout) таарч байгааг програм, багаж хэрэгсэл ашиглан шалгах юм. (шугамын драйверийн ИС-н холболт буруу байсныг мултиметрийн хэмжилтээр олсон. Үүний дараа PCB файл дээр бусад бүх холболтуудыг мөрдөж шалгасан)

Жишээ нь SZ хавтан дээр илэрсэн алдаанууд:
- эхлээд +24-н хэлхээнд +5-г гаднаас өгөхөд тэжээлийн блокийн гүйдэл 3А-с дээш зааж байв. Энэ нь хэлхээнд алдаа, согог байгаа гэдгийг харуулж байна. Уг нь 260mA-с хэтрэх ёсгүй.
- Тиймээс тэжээлийн ороомгийг салгаж байгаад +5-н шугамд гаднаас +5-г өгөв. Гүйдлийн хэмжээ өндөр хэвээр.
- Тэгэхээр нь +3-н хэлхээнд гаднаас +3-г өгөв. Учир нь +3, +2, -5 нь +5-р үүсгэгдэж байгаа. Гүйдэл мөн өндөр хэвээр.
- +3 ямар ИС, элементэд холбогдсоныг зарчмын схемийн дагуу мөрдөж, тэдгээр холбоотой ИС, элементүүд хавтан дээр зарчмын схемийн дагуу холбогдсоныг мултиметрээр шалгах явцад шугамын драйверийн хэлхээнд буруу холболт хийгдсэнийг олов.
- Алдааг засаад дахин +3-г гаднаас өгөхөд гүйдэл өндөр хэвээр байв. Өөрөөр хэлбэл өөр алдаа байна гэсэн үг.
- Бүх холболтыг PCB файл дээр шалгаж, зөв гэдгийг тогтоосны дараа ИС-н тэмдэглэгээг datasheet-тэй нь тулгаж шалгав. Энэ шалгалтаар кодекийн 3 хөл зарчмын схем дээр буруу тэмдэглэгдсэн болохыг олов. Өөрөөр хэлбэл зарчмын схем дэх симбол буруу тодорхойлогдсоноос алдаа гарч, ИС-н хөлнүүд буруу сигналд холбогдсон байв. Энэ буруу холбогдсон хөлнүүдийг хавтангаас хөндийрүүлсний дараа +3-г холбоход гүйдэл багасч ойролцоогоор 400mA болсон байв. Үүнийг +3-н хэлхээ алдаагүй болсон гэж үзэв.
- +5-н шугамд гаднаас +5-г өгөхөд гүйдэл дахин өндөр хэвээр байв. Гэхдээ 2,5А орчим байв.
- +5-н шугамд PCB файл дээр шалгалт хийх явцад санах ойн ИС буруу байрласныг олов.
- Уг ИС-г хэлхээнээс салгаж байгаад дахин +5-г өгөхөд гүйдэл багасаад 400mA орчим зааж байв. Ингээд +5 шугамд гүйдэл бага байгаа тул +3, +2 шугамууд хэвийн гэж үзэв.
- Нэгэнт дотоод тэжээлийн гаралтын хэлхээ хэвийн болсон тул тэжээлийн оролтонд +5-с +24 хүртэл хүчдлийг аажмаар өгөв. Гүйдэл бүр багасч 200mA-с багыг зааж байв.
- Үлдсэн -5, +22 шугамын хүчдэлийг шалгахад -5 хэвийн, харин +22-н оронд +16 зааж байв. +16-н хэлхээний ҮӨ-н гаралт 0В орчимд байсан тул үүнийг хэвийн гэж үзэв.
- Шалгалтын явцад бусад жижиг алдаануудыг мөн илрүүлэв: зарим эсэргүүцэл, конденсатор холбогдоогүй, зарчмын схемийн хэд хэдэн алдаа г.м.

Thursday, April 16, 2009

const char*

C код дотор const char* гэсэн мөр нэлээд тааралдах нь бий. Тухайлбал хувьсагч, функцын аргумэнтийн төрлийг ингэж тодорхойлсон байдаг.

Жишээ нь:

struct MyStruct
{
const char* name;
int return;
};

эсвэл

void MyFunction(const char* file, int line, const char* message);

Энэхүү const char* төрөл яагаад const char * гэж бичигдээгүй нь анхаарал татлаа. Дээрх жишээн дэх name, file, message гэсэн хувьсагч, аргумэнтууд нь бүгд утгыг нь өөрчилж болдоггүй тэмдэгт мөрийг (string constant, string literal) заах заагчид юм. Хэрэв эдгээр нь заагч юм бол од (*) уг нь хувьсагчийн нэрэнд зүүлттэй баймаар юм.

const char *name, const char *file

г.м.-ээр.

Яагаад заавал одыг (*) char дээр зоогоод байгаагийн учрыг мэдмээр байна.

Wednesday, February 18, 2009

BENNING Duspol analog plus - Шугамын хүчдэл шалгагч


Товч тайлбар

Хувьсах болох тогтмол хүчдэл хэмжинэ, шугамын фазын чиглэлийг тогтооно. Хэмжилтийн утгыг гэрлийн диод (LED) болон шилжих заагуур* бүхий хуваариар үзүүлнэ.

Техникийн үзүүлэлт

Хэмжүүрийн хязгаар: 12 - 690 Вольт (хувьсах хүчдэл, LED), 750 Вольт (тогтмол, шилжих заагуур)
Хувьсах орон, фазын чиглэл тодорхойлно: R (цагийн зүүний дагуу) гэсэн тэмдэглэгээгээр харуулна.
Хүчдэлийн туйлыг тодорхойлно: +/- туйлыг LED дээр харуулна.
Чичиргээт дохиололтой: энэ нь хүчдэлийг найдвартай, үнэн зөв мэдрэх үүрэгтэй.
Ачаалал залгаж турших боломжтой: даралтат товчлуураар шалгана. Is=250мА, 750В (тогтмол)
Батерей хэрэглэхгүй ажиллана.
Хамгаалалтын төвшин: IP64, тоос, усны үсрэлтээс хамгаалагдсан.
Хэт хүчдэлийн категори: CAT IV 500Вольт, CAT III 690Вольт.

* Шилжих заагуур гэдэг нь тогтоосон хуваарь дээгүүр шилжин хөдөлж, хэмжиж байгаа хэмжигдхүүний тоон утгыг харуулдаг механизм. Өөрөөр хэлбэл аналог тестерийн зүүтэй адил.

BENNING - халаасны тоон мултиметер


Товчхон тайлбар

Энэ халаасны тоон мултиметер (тестер ч гэж нэрлэж болно) нь 5 төрлийн хэмжилтийг (тогтмол болон хувьсах хүчдэл, эсэргүүцэл, давтамж, конденсаторын багтаамж) тоон хэлбэрээр гүйцэтгэнэ. Хэмжилтийн үр дүнг HOLD товчлуураар өөртөө хадгалах боломжтой. Ашиглахгүй удсан үед өөрөө автоматаар унтарч, батерей хэмнэх горимтой. Мөн хагас дамжуулагч диодны гарцыг хэмжихээс гадна шугамын холболтыг хэмжиж, дуут сигнал өгнө.

Техникийн үзүүлэлт

Тогтмол хүчдэлийг (Vdc) хэмжих хязгаар: 0,1мB - 600B, +/-0,6%
Хувьсах хүчдэлийг (Vac) хэмжих хязгаар: 0,1мB - 600B, +/-0,9%
Эсэргүүцэлийг (R) хэмжих хязгаар: 0,1Oм - 40МОм, +/-0,9%
Давтамжийг (f) хэмжих хязгаар: 1МГц - 5 МГц, +/-0,3%
Багтаамжийг (C) хэмжих хязгаар: 10пФ - 100мкФ, +/-2,9%

Хэмжилтийн утга: дундаж квадрат (RMS)
Хэмжүүрийн категори: CAT III, 300Вольт
Хэрэглэгдэх батерей: LR44 төрлийн 2 ширхэг 1,5В (2x1,5В LR44)
Овор, хэмжээ: 132x86x19мм, 130гр

Дагалдах зүйлс: хэмжүүрийн хошуу, арьсан гэр, батерей (2xLR44)

Monday, February 16, 2009

ATmega8 микроконтроллерийн туршилтын хавтан


Энэ хавтан нь Atmel ATmega8 микроконтроллерт тулгуурлан янз бүрийн зориулалттай жижиг электрон төхөөрөмжийн зохион бүтээлтэнд зориулагдсан.
Хавтан нь микроконтроллер, тэжээлийн хэсэг, гэрлэн диодууд, товчлуур, баззер (дуун дохио үүсгэнэ), өргөтгөх интерфэйс, программчлах интерфэйс гэсэн үндсэн хэсгүүдээс тогтоно. Сериал эсвэл USB портоор компьютерт холбогдон программчлагдах боломжтой. Мөн LCD дэлгэц, Ethernet интерфэйс, температурын сенсор гэх мэт нэмэлт төхөөрөмжөөр тоноглох боломжтой.
Хэрэв та энэ хавтанг ATmega8 микроконтроллерийн удирдлагатай жижиг электроник хийж туршихдаа ашиглах сонирхолтой байвал хүсэлтээ блогт тайлбар хэлбэрээр үлдээгээрэй.

Asuro robot


Asuro robot - developed in the German Airspace Centre.

Асуро нь Германы Агаарын болон Сансрын Нислэгийн Төвд зохион бүтээгдсэн хөдөлгөөнт робот бөгөөд электроник сонирхогч болон сургалтанд зориулагдсан.
Роботыг хэрхэн яаж угсрах талаар доорх видео бичлэгт үзүүлсэн байгаа (энд дарж бичлэгийг үз.) Үүнээс гадна зарим блогуудад ч угсралтын талаар дурдсан байгаа. Жишээ нь энэ блогийг уншиж болно.
Хэрэв ийм робот дээр элдэв туршилт хиймээр байвал хүсэлтээ блогт тайлбар болгон үлдээгээрэй.