PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe bei Serielerverbindung mit einem Spracherkennungs Mod



Anubisbot
17.11.2005, 21:24
Hi, ich habe mir gestern mal das Sprcherkennungsmodul von Conrad geholt für 29 Euro. Meine ersten test waren schon recht zufrieden stellen.

Es kann im Standalone mode bis zu 15 Komandos lernen.
Nun möchte ich aber es als Slave laufen lassen.

dazu steht im datenblatt :

Data communication and control are accomplished using a 3 wire synchronous serial interface.
Since the serial interface lines are open-collector (open-drain), pull-up resistors should be attached to all signals. If application requirements call for Voice Direct™ 364 to be powered down while the rest of the system is still powered up, take care to ensure that the external pull-up
resistors are also powered down. Doing so will prevent current leakage into the Voice Direct™ 364 I/O ports.

The following table describes the 3 lines used for data and handshaking between the Voice Direct™ 364 and the MCPU. In the table and the timing diagrams, VDR refers to the Voice Direct™ 364 IC.

1. When the host CPU has data to transmit to the VDR, the host CPU sets
DATA to the data value, verifies that -SHS (Slave Handshake) is in
the high state, then sets -MHS (Master Handshake) to the low state to
request a transfer.
2. The VDR senses the low state of -MHS and reads DATA, which then
sets SHS to the low state to acknowledge the DATA.
3. The host CPU senses the low state of -SHS, and sets -MHS to the high
state to indicate that DATA is no longer valid, and at the same time
sets DATA high (releasing it).
4. The VDR then sets -SHS to the high state to indicate that the cycle is
complete. Both devices are now ready to transfer the next data bit.

Ich benutze ein Picaxe und weis nun nicht wo ich die leitungen anschließen soll ?? 2 outputs für high / low für die handschakes aber wo die datenleitung biderecktional ???

habe den Pic auf dem Servoborad siehe Pdfdatei

MfG
O.R

askazo
18.11.2005, 09:42
Hm, die Anleitung beschreibt nur eine Übertragung von der CPU zum Voice Modul. Müsste aber auch andersherum gehen, oder?

MHS wird von der CPU kontolliert, den musst Du also als Ausgang belegen. SHS wird vom VDR kontrolliert, ist an der CPU also auf einen Eingang zu legen. Für die Datenleitung musst Du je nach Übertragungsrichtung den I/O umschalten.

Mal ein kurzes Ablaufschema:

Übertragung CPU --> VDR
1. CPU schaltet den DATA-Pin als Ausgang.
2. CPU legt das zu übertragende Bit auf den DATA-Pin
3. CPU prüft, ob SHS auf High ist
4. CPU setzt MHS auf Low
5. CPU wartet, bis SHS auf Low ist
6. CPU setzt MHS auf High
7. Übertragung abgeschlossen.

Übertragung VDR --> CPU (ohne Garantie, dürfte aber so ablaufen)
1. CPU prüft kontinuierlich den SHS-Pin (per Polling oder Interrupt)
2. VDR setzt SHS auf Low
3. CPU registriert Übertragungs-Anforderung
4. CPU setzt DATA-Pin als Eingang und ließt das anliegende Bit ein.
5. CPU setzt MHS auf Low
6. VDR setzt SHS auf High
7. CPU registriert High-Pegel an SHS und setzt MHS auf High
8. Übertragung abgeschlossen

Ist sicherlich ein wenig Arbeit, ein solches Protokoll in einen µP zu implementieren. Ist aber trotzdem eine lösbare Aufgabe.

askazo

Anubisbot
18.11.2005, 10:56
Ja gnau so habe ich mir das auch gedacht, leider nicht machbar mit dem Picaxe da ich dort bei dem 18x keine leitung als I/O habe nur I oder O.

Mhhh werde es dann doch mal mit der Javelin Stamp versuchen....
Mit der Java Stamp kann ich das sogar als einenen Task laufen lassen nebenher, zu dem Standartprog..

Oder hat jemand da eine andere Idee für den Picaxe 18X